У меня есть страница с таймером, который используется в качестве триггера на панели обновления.Страница также содержит TabContainer и несколько TabPanels.Посмотрите на этот вопрос для получения дополнительной информации.По сути, у меня есть UpdatePanel как элемент в ContentTemplate каждого TabPanel, и UpdatePanel запускается таймером.
Моя страница отображает данные, читая базу данных по каждому тику.У меня есть следующий код, запущенный для каждого Timer.Tick в моем коде:
protected void timeRefresher_Tick(object sender, EventArgs e)
{
UpdateLivePageTitle();
}
Функция UpdateLivePageTitle()
считывает новую информацию из базы данных и соответственно устанавливает Page.Title.Тем не менее, эта информация, конечно, не отправляется в браузер, потому что нет полной обратной передачи страницы - только асинхронная обратная передача на панели обновления.В результате заголовок моей страницы не обновляется до тех пор, пока вся страница не будет отправлена обратно, что в первую очередь разрушает цель использования UpdatePanels.
Я полагаю, что есть способ сделать это, используяэлемент document.title
JS и вызовите его из UpdateLivePageTitle ().Но на данный момент я не смог понять, как это сделать.Я попытался использовать следующее в моей функции UpdateLivePageTitle()
:
string updatePageTitleScript = String.Format("document.title = '{0}'", newPageTitle);
ToolkitScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "UpdatePageTitle", updatePageTitleScript, true);
Но результатом этого стало то, что мой TabContainer прекратил рендеринг.Я также не уверен, что это будет работать и с асинхронными частичными обратными вызовами страниц.Есть идеи?
Спасибо!