严格控件的内联页面代码永远不会起作用

时间:2012-01-04 10:36:01

标签: c# asp.net css

我尝试了以下代码,我尝试使用内联表达式,例如<%,<%=,为什么我不能在服务器端控件中使用内联表达式?

在我的第一行代码中,我试图关注这篇文章,但它不能正常工作。为什么? 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>

2 个答案:

答案 0 :(得分:2)

您不能在服务器端控件中使用代码块(<%%><%=%><%:%>)。绑定表达式(<%#%>)是另一回事。

你需要了解shortcut server side code blocks之间的差异,只是随机尝试不同的,你似乎在做什么就会教你什么。

您可以在代码隐藏文件中分配值:

TextBox1.Text = DateTime.Now.Date.ToString("dd-MM-yyyy");

答案 1 :(得分:1)

当您bind表达<%# %>时,您必须致电Control.DataBind()Page.DataBind()进行评估。