我想从代码中获取属性值

时间:2011-04-05 07:52:23

标签: asp.net

我有一个案例,我需要在aspx页面中为asp标签设置Text属性而不是后面的代码。更准确地说,我需要在aspx页面中为asp控件设置一个值,这个值由后面相同页面代码中的属性设置。

因此我需要使用表达式来执行此操作:

<asp:Label Text="<%= MyProperty %>" ..../>

我用:

<%= MyProperty %> doesn't work.
<%# MyProperty %> doesn't also.

3 个答案:

答案 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();

你是否在代码中调用了这个?它将代码中设置的所有变量绑定到您的页面。