如何将classes属性绑定到TextBox?

时间:2009-07-07 19:55:56

标签: c# asp.net

我有一个带有字符串属性注释的Customer类,我试图像这样绑定它:

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

然而,它给了我错误:

服务器代码不能包含&lt;%...%&gt;构建体。

我在类中有一个名为GetCreatedDate的方法,在aspx页面中,我正在做     &LT;%= GetCreatedDate()%&GT;和&lt;%GetCreatedDate();%&gt;。有什么区别?

5 个答案:

答案 0 :(得分:1)

或者,您可以在代码隐藏文件的Page_Load事件中设置值:

txtComments.Text = customer.Comments; 

答案 1 :(得分:0)

你应该使用“&lt;%#%&gt;”用于数据绑定

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

答案 2 :(得分:0)

试试这个。

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

注意= to#

答案 3 :(得分:0)

使用所述的DataBinding语法,&lt;%#customer.Comments%&gt;。仅当TextBox是数据绑定时才会评估此语法。您通常会在DataBound列表中使用它。在这种情况下,您需要手动对控件进行数据绑定。覆盖页面的OnDataBinding方法并调用txtComments.DataBind();

数据绑定语法是从aspx页面声明性地设置ServerControl属性的唯一方法。其他语法的Response.Write在无法访问ServerControl属性时发生。如果控件不在数据绑定控件内,则必须对其进行数据绑定。

如果您希望在页面中使用所有声明,那么使用此方法无法获得太多收益,因为您仍然需要在后面的代码中编写代码。

如果你想在没有父DataBound控件的情况下单独使用TextBox,那么另一种方法是将TextBox子类化,添加一个AutoBind属性,如果它是true,则在子类控件中调用它的DataBind方法。这将允许您绑定值而无需在后面的代码中编写数据绑定代码。

您还可以将TextBox和其他表单控件添加到FormView控件并将其绑定到您的对象。在这种情况下,您仍然可以使用DataBinding语法。

答案 4 :(得分:0)

试试这个

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