2009-07-07 82 views
0

我有一個字符串屬性註釋的Customer類,我想將它綁定這樣的:如何將一個類屬性綁定到一個TextBox?

<asp:TextBox ID="txtComments" 
      runat="server" 
      TextMode="MultiLine" Text=<%=customer.Comments %>> 
</asp:TextBox> 

但是,它給我的錯誤:

服務器標記不能包含<%... %>結構。

我也有稱爲GetCreatedDate類的方法和在aspx頁,我做 <%= GetCreatedDate()%>和<%GetCreatedDate();%>。有什麼不同?

回答

1

或者你可以在代碼的Page_Load事件隱藏文件設置的值。評論%>。此語法僅在TextBox爲數據綁定時才被評估。您通常會在DataBound列表中使用它。在這種情況下,您需要手動數據綁定控件。重寫頁面的OnDataBinding方法並調用txtComments.DataBind();

數據綁定語法是從aspx頁面聲明式設置ServerControl屬性的唯一方法。其他語法的Response.Write發生在ServerControl屬性無法訪問的時候。如果控件不在數據綁定控件中,則必須將其綁定。

如果你正在尋找去在你的頁面的所有聲明,你不使用這種方法,因爲你仍然需要在代碼編寫代碼獲取落後得多。

另一種方法是,如果您希望自己使用文本框而不使用父級DataBound控件,則可以爲TextBox創建子類,添加AutoBind屬性,並在子類控件中調用其DataBind方法(如果它爲true)。這可以讓你綁定值而不用在後面的代碼中寫入數據綁定代碼。

您也可以將TextBox和其他表單控件添加到FormView控件並將其綁定到您的對象。在這種情況下,您仍然可以使用DataBinding語法。

0

你應該使用 「<%#%>」 用於數據綁定

<asp:TextBox ID="txtComments" 
      runat="server" 
      TextMode="MultiLine" Text="<%# customer.Comments %>"> 
</asp:TextBox> 
+0

只是好奇,是什麼#之間的差異= – Xaisoft 2009-07-07 20:02:40

+1

「<%#」評估數據綁定時DataBind方法被稱爲 「<%=」的計算結果頁面時並且不支持服務器控件屬性 – 2009-07-07 20:53:57

0

試試這個。

txtComments.Text = customer.Comments; 
0

使用如規定的數據綁定語法,<%#客戶:

<asp:TextBox ID="txtComments" 
     runat="server" 
     TextMode="MultiLine" Text=<%# customer.Comments %>> 
</asp:TextBox> 

通知的=到#

0

試試這個

<asp:TextBox ID="txtComments" 
     runat="server" 
     TextMode="MultiLine" Text='<%# customer.Comments %>'> 
</asp:TextBox> 
相關問題