为什么我不能通过调用aspx文件中的方法来设置asp:Label Text属性?

GAT*_*GAT 9 c# asp.net

有人可以向我解释一下:

我有一个标签,我希望能够通过调用aspx文件中的方法来设置Text属性.如果我在代码中设置属性,它工作正常,但我真的想在aspx文件中设置此属性.

我尝试了几件事,但我期望的工作是:

<asp:Label ID="Label1" runat="server" Text=<%# GetMyText("LabelText") %> />
Run Code Online (Sandbox Code Playgroud)

这样做时我没有错误,但我的方法永远不会调用,Text属性保持为空.

是否无法在不使用资源或使用硬编码值的情况下直接在aspx中将属性值设置为服务器端控件?

更新:我的第一次尝试是:

<asp:Label ID="Label1" runat="server" Text=<%= GetMyText("LabelText") %> />
Run Code Online (Sandbox Code Playgroud)

但是这会导致以下错误:

服务器标记不能包含<%...%>结构.

Joe*_*Joe 12

syntax = <%#...%>是数据绑定语法,用于在调用DataBind方法时将值绑定到控件属性.

您需要调用DataBind - 要么Page.DataBind绑定页面上的所有控件,要么Label1.DataBind()来绑定标签.例如,将以下内容添加到Page_Load事件处理程序:

    if (!IsPostBack)
    {
        this.DataBind();
        // ... or Label1.DataBind() if you only want to databind the label
    }
Run Code Online (Sandbox Code Playgroud)

使用Text ='<%= GetMyText("LabelText")%>'正如其他人提出的那样,你将无法发现它们.此语法继承自经典ASP.它可以在ASP.NET的某些情况下用于在静态HTML中插入动态值,但不能用于设置服务器控件的属性.