asp.net databind标签控制文本到页面基类的属性

时间:2011-12-04 04:26:12

标签: c# asp.net data-binding

当我尝试将TestString输出到我的Label中时,为什么TestString总是空的?

所有asp.net页面的基类

public class PageBase : System.Web.UI.Page
{
    protected string TestString { get; set; }
}

protected override void OnPreInit(EventArgs e)
{
TestString = "test string";
}

asp.net页面,派生自PageBase并使用母版页。

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:Label ID="lblContent" runat="server" Text="<%# this.TestString %>" />
</asp:Content>

2 个答案:

答案 0 :(得分:2)

您需要调用DataBind()方法。

在page_load处理程序中,

TestString="Testing a property";
lblContent.DataBind();
//or
DataBind();

答案 1 :(得分:1)

编辑

下面的代码实际上并不起作用 - 我测试了它,但不是很好。 OP真正想要的是:

<div id="lblContent"><%= this.TestString %></div>

我认为你需要改变这个

<asp:Label ID="lblContent" runat="server" Text="<%# this.TestString %>" />

到这个

<asp:Label ID="lblContent" runat="server" Text="<%= this.TestString %>" />

&lt;%#只运行代码,但输出任何内容。 &lt;%=将输出这些标签内的任何内容。