2010-06-14 18 views
0

我有一個頁面,其中有一個Timer被用作UpdatePanel上的觸發器。該頁面還包含一個TabContainer和幾個TabPanel。看看這個question欲知更多信息。基本上,我在每個TabPanel的ContentTemplate中都有一個UpdatePanel作爲元素,並且UpdatePanel由Timer觸發。更新Timer.Tick上的PageTitle

我的頁面通過讀取每個勾號的數據庫來顯示數據。我有我的代碼隱藏在每個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的停止渲染。我也不確定這是否也適用於異步部分頁面回發。有任何想法嗎?

謝謝!

回答

1

您忘記了腳本中的;

哦,如果我沒有記錯的話,框架應該能夠更新標題,如果你只是設置Page.Title

+0

設置Page.Title不起作用,這就是爲什麼我正在尋找替代解決方案。分號做了訣竅。感謝上帝,這只是一個愚蠢的句法問題! – sohum 2010-06-14 19:30:01

+0

@sohum:很奇怪。我相信我在庫源代碼中看到了與頁面標題相關的內容。我雖然沒有嘗試過,所以也許它不能像那樣工作。 – 2010-06-14 19:50:05