我有一个带有Timer的页面,它被用作UpdatePanel上的触发器。该页面还包含一个TabContainer和几个TabPanel。有关更多信息,请查看此question。基本上,我有一个UpdatePanel作为每个TabPanel的ContentTemplate中的元素,UpdatePanel由Timer触发。
我的页面通过在每个刻度上读取数据库来显示数据。我在代码隐藏中的每个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停止渲染。我也不确定是否可以使用异步部分页面回发。有什么想法吗?
谢谢!
答案 0 :(得分:1)
您忘记了脚本中的;
。
哦,如果我没记错的话,如果你设置Page.Title
,框架应该可以更新标题。