2016-01-12 3 views
0

У меня есть панель обновления на моей главной странице, что ASync сообщения на сервер, чтобы получить некоторые данные вставляются в ярлыкеАсинхронный вызвал UpdatePanel на Masterpage вставив JS скрипты на непрерывном цикле

<asp:Timer ID="timer1" runat="server" Interval="1000" OnTick="timer1_Tick"></asp:Timer> 
<asp:UpdatePanel ID="upTimer1" runat="server"> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="timer1" EventName="Tick" /> 
</Triggers> 
<ContentTemplate> 
<asp:Label ID="lab" runat="server"></asp:Label> 
</ContentTemplate> 
</asp:UpdatePanel> 

Содержание постбэк приводит к тому, что js-вставки asp.net для древовидных изображений и обновляемых панелей непрерывно вставляются в цикл, вызывая проблемы с нестабильной ситуацией. Я в порядке с постбэков, если я могу получить причину/ответ, почему JS вставки держать вставки с каждым OnTick из MasterPages таймера событий

UPDATE

метка должна обновляться каждые несколько секунд, и рассматриваемый древовидный вид находится на странице содержимого, где панель таймера и обновления находится на главном сервере.

код на событие клеща следующим

_sql = new SQL(ConfigurationManager.ConnectionStrings["connString"].ConnectionString); 
DataTable dt = _sql.GetMessages(Session["User"].ToString()).Tables[0]; 
int count = 0; 
if (dt.Rows.Count != 0) { for (int i = 0; i < dt.Rows.Count; i++) { if (!(bool)dt.Rows[i]["messageRead"]) { count++; } } } 
if (count > 0) 
{ 
if (count > 99) { lab.Text = "99+"; } 
else { lab.Text = count.ToString(); } 
} 
else { lab.Text = string.Empty; } 

UPDATE

Everytime таймер тикает этот код получает повторно в голову страницы, но оригинальная вставка по-прежнему существует, так что просто держит добавление и добавления, пока страница не запаздывает вниз

<script type="text/javascript">var cphHeropath_tvEvents_Data = null;</script> 
<script type="text/javascript"> 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEvents_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEvents_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEvents_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEvents_ImageArray', '/WebResource.axd?d=Vnw6Nul5Gi8dLBSg8ZsULZm-q_TThJrtFUwhdaYiJR2-SI14Y5nZERvMBuf1pp3hANJ4ymdDltekmivTd-IP0DmYagXAChzkcq2C4A4ZwOw1&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEvents_ImageArray', '/WebResource.axd?d=Wt-oJLHV-dsfkxJN06L-WS7YzkkDgeALhClv1gm-ITLCsWITJpTR205JjsXo0RKET50tKis10XGsSGwW5yACH_IdZeEk-V6y3LfMIUUOAX41&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEvents_ImageArray', '/WebResource.axd?d=-n2KnhPEOy8tY2UhU96Dm6tpQMQ-k0JQe8bafZ_4g-kOfLnmWNaKU3HwLJdqrAZWpk0NCRVSeF9MRKP0SNO90D6BbAstCcDuQ1xlzxqB4co1&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEventListMovement_Teleport_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEventListMovement_Teleport_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEventListMovement_Teleport_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEventListMovement_Teleport_ImageArray', '/WebResource.axd?d=Vnw6Nul5Gi8dLBSg8ZsULZm-q_TThJrtFUwhdaYiJR2-SI14Y5nZERvMBuf1pp3hANJ4ymdDltekmivTd-IP0DmYagXAChzkcq2C4A4ZwOw1&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEventListMovement_Teleport_ImageArray', '/WebResource.axd?d=Wt-oJLHV-dsfkxJN06L-WS7YzkkDgeALhClv1gm-ITLCsWITJpTR205JjsXo0RKET50tKis10XGsSGwW5yACH_IdZeEk-V6y3LfMIUUOAX41&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvEventListMovement_Teleport_ImageArray', '/WebResource.axd?d=-n2KnhPEOy8tY2UhU96Dm6tpQMQ-k0JQe8bafZ_4g-kOfLnmWNaKU3HwLJdqrAZWpk0NCRVSeF9MRKP0SNO90D6BbAstCcDuQ1xlzxqB4co1&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvDatabaseAssets_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvDatabaseAssets_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvDatabaseAssets_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvDatabaseAssets_ImageArray', '/WebResource.axd?d=Vnw6Nul5Gi8dLBSg8ZsULZm-q_TThJrtFUwhdaYiJR2-SI14Y5nZERvMBuf1pp3hANJ4ymdDltekmivTd-IP0DmYagXAChzkcq2C4A4ZwOw1&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvDatabaseAssets_ImageArray', '/WebResource.axd?d=Wt-oJLHV-dsfkxJN06L-WS7YzkkDgeALhClv1gm-ITLCsWITJpTR205JjsXo0RKET50tKis10XGsSGwW5yACH_IdZeEk-V6y3LfMIUUOAX41&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvDatabaseAssets_ImageArray', '/WebResource.axd?d=-n2KnhPEOy8tY2UhU96Dm6tpQMQ-k0JQe8bafZ_4g-kOfLnmWNaKU3HwLJdqrAZWpk0NCRVSeF9MRKP0SNO90D6BbAstCcDuQ1xlzxqB4co1&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvGameAssets_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvGameAssets_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvGameAssets_ImageArray', ''); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvGameAssets_ImageArray', '/WebResource.axd?d=Vnw6Nul5Gi8dLBSg8ZsULZm-q_TThJrtFUwhdaYiJR2-SI14Y5nZERvMBuf1pp3hANJ4ymdDltekmivTd-IP0DmYagXAChzkcq2C4A4ZwOw1&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvGameAssets_ImageArray', '/WebResource.axd?d=Wt-oJLHV-dsfkxJN06L-WS7YzkkDgeALhClv1gm-ITLCsWITJpTR205JjsXo0RKET50tKis10XGsSGwW5yACH_IdZeEk-V6y3LfMIUUOAX41&t=635858559402388336'); 
Sys.WebForms.PageRequestManager._addArrayElement('cphHeropath_tvGameAssets_ImageArray', '/WebResource.axd?d=-n2KnhPEOy8tY2UhU96Dm6tpQMQ-k0JQe8bafZ_4g-kOfLnmWNaKU3HwLJdqrAZWpk0NCRVSeF9MRKP0SNO90D6BbAstCcDuQ1xlzxqB4co1&t=635858559402388336'); 
</script> 

UPDATE

, поэтому настроить их на условные, чтобы остановить непрерывные вставки дерева, так что спасибо. единственное, что происходит с каждым тиком, следующие вставки теперь непрерывны.

<script> 
Sys.Application.add_init(function() { 
    $create(Sys.UI._Timer, {"enabled":true,"interval":1000,"uniqueID":"ctl00$timer"}, null, null, $get("timer")); 
}); 
</script> 

Возможно ли удалить эти постоянные вставки на каждый таймерTick или это является обязательным для системы таймера для их использования?

+0

Попробуйте добавить UpdateMode = «Условное» в вашу UpdatePanel. – Kami

+0

Нет изменений. –

+0

Если вы используете управление таймером и подключаетесь к нему с помощью UpdatePanel, который вы сделали, то каждый раз, когда происходит событие «Tick», содержимое UpdatePanel будет обновляться. Так работает таймер. – Sunil

ответ

0

Положите, если вокруг кода, который испускает скрипт, который вы говорите, встает в секцию головы при каждой обратной передаче по таймеру. Это, если не будет вставлять скрипт, если таймер запускает событие Tick.

if (ScriptManager.GetCurrent(this.Page).AsyncPostBackSourceElementID.IndexOf("timer1") == -1) 
{ 
    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), 
        "myscript", "var x=10;", true); 
} 

Кроме того, убедитесь, что все обновления панели в главной странице и в другом месте, где есть их UpdateMode='Conditional'.

Значением по умолчанию для этого параметра является Всегда i.e обновление панели обновлений для каждого сообщения ajax или non-ajax, и не имеет значения, откуда возникла почта.

Итак, в вашем случае элемент управления таймера отправляет обратно, но панель обновления с древовидным представлением также обновляется в дополнение к панели обновления, содержащей метку, поскольку панель обновления дерева просмотра настроена на то, чтобы всегда обновлять себя из-за значения по умолчанию Значение UpdateMode='Always'.

+0

сценарий сам генерируется из состояния asp.net treeviews по умолчанию и использует диспетчер сценариев, другими словами, я не вставляю этот код, а treeview - это –

+0

, затем вставьте код главной страницы, так как там есть какая-то проблема. – Sunil

+0

Я подозреваю, что панель обновления на главной странице всегда настроена на обновление. – Sunil