我有一个带有字符串属性注释的Customer类,我试图像这样绑定它:
<asp:TextBox ID="txtComments"
runat="server"
TextMode="MultiLine" Text=<%=customer.Comments %>>
</asp:TextBox>
然而,它给了我错误:
服务器代码不能包含&lt;%...%&gt;构建体。
我在类中有一个名为GetCreatedDate的方法,在aspx页面中,我正在做 &LT;%= GetCreatedDate()%&GT;和&lt;%GetCreatedDate();%&gt;。有什么区别?
答案 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>