我尝试了以下代码,我尝试使用内联表达式,例如<%,<%=,为什么我不能在服务器端控件中使用内联表达式?
在我的第一行代码中,我试图关注这篇文章,但它不能正常工作。为什么? http://todotnet.com/post/2009/04/18/Working-around-Cannot-create-an-object-of-type-SystemBoolean-from-its-string-representation.aspx
<asp:TextBox ID="txtDate" runat="server" Text='<%# DateTime.Now.Date.ToString("dd-MM-yyyy")%>' meta:code='<% txtDate.DataBind(); %>'></asp:TextBox>
<asp:TextBox ID="TextBox1" runat="server" Text='<%= DateTime.Now.Date.ToString("dd-MM-yyyy")%>'></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" Text='<% DateTime.Now.Date.ToString("dd-MM-yyyy")%>'></asp:TextBox>
答案 0 :(得分:2)
您不能在服务器端控件中使用代码块(<%%>
,<%=%>
和<%:%>
)。绑定表达式(<%#%>
)是另一回事。
你需要了解shortcut server side code blocks之间的差异,只是随机尝试不同的,你似乎在做什么就会教你什么。
您可以在代码隐藏文件中分配值:
TextBox1.Text = DateTime.Now.Date.ToString("dd-MM-yyyy");
答案 1 :(得分:1)
当您bind表达<%# %>
时,您必须致电Control.DataBind()
或Page.DataBind()
进行评估。