2010-05-27 147 views
0

我使用下面的語法綁定到一個div元素:數據綁定到一個屬性?

<div id="previewdiv"><%=Preview%></div> 

哪裏預覽是我的網頁上的屬性。

問題在於,我在一個onclick事件的新頁面上使用JavaScript創建了它。在服務器端,我可以通過此屬性引用新頁面,但由於某種原因,當頁面回發時,變量將被設置爲默認的初始化值,而不是我在頁面中設置的值,即預覽=字符串。當我第二次回發時,頁面將更新爲我設置的值。

我也許可以將代碼移動到Init,但我需要從控件獲取值來初始化此屬性。

想法?

回答

2

您遇到的問題是,在您的代碼有機會運行之前,使用傳統的ASP.NET Web窗體,<%= %>代碼在頁面生命週期的早期階段就進行了評估。

相反,您想要使用ASP.NET Data Binding,它使用不同的語法,如下所示:<%# %>。 (注意「#」)。然後,要獲得此代碼進行渲染,當準備好用實際數據替換模板時,必須調用某個服務器端控件的DataBind()。

因此,在你的服務器代碼,你做這樣的事情:

Preview = someString; 
previewDiv.DataBind(); 

而在您的標記,像這樣:

<div runat=server id="previewdiv"><%#Preview%></div>