我有一个案例,我需要在aspx页面中为asp标签设置Text属性而不是后面的代码。更准确地说,我需要在aspx页面中为asp控件设置一个值,这个值由后面相同页面代码中的属性设置。
因此我需要使用表达式来执行此操作:
<asp:Label Text="<%= MyProperty %>" ..../>
我用:
<%= MyProperty %> doesn't work.
<%# MyProperty %> doesn't also.
答案 0 :(得分:23)
Default.aspx.cs
public partial class _Default : System.Web.UI.Page
{
public string CustomTitle = "This Is Title";
protected void Page_Load(object sender, EventArgs e)
{
Page.DataBind();
}
}
Default.aspx的
<asp:Label Text='<%#CustomTitle %>' runat="server" />
答案 1 :(得分:12)
您必须以不同方式处理常规HTML和WebControl:
常规HTML :
使用<%= ... %>
就足够了:
<span><%= MyProperty %></span>
WebControls (以&lt; asp:...&gt;开头的东西):
<asp:Label Text='<%# MyProperty %>' />
在这种情况下,您还必须在代码隐藏中调用Me.DataBind()
(VB)或this.DataBind();
(C#),因为<%# ... %>
是数据绑定表达式。
答案 2 :(得分:3)
Page.DataBind();
你是否在代码中调用了这个?它将代码中设置的所有变量绑定到您的页面。