gpt4 book ai didi

c# - 为什么我不能设置asp :Label Text property by calling a method in the aspx file?

转载 作者:太空狗 更新时间:2023-10-29 17:41:09 25 4
gpt4 key购买 nike

谁能给我解释一下:

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

我已经尝试了几件事,但我期望的是:

<asp:Label ID="Label1" runat="server" Text=<%# GetMyText("LabelText") %> />

执行此操作时我没有收到任何错误,但我的方法从未被调用并且 Text 属性留空。

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

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

<asp:Label ID="Label1" runat="server" Text=<%= GetMyText("LabelText") %> />

但这会导致以下错误:

Server tags cannot contain <% ... %> constructs.

最佳答案

语法 =<%# ... %> 是数据绑定(bind)语法,用于在调用 DataBind 方法时将值绑定(bind)到控制属性。

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

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

使用其他人建议的 Text='<%= GetMyText("LabelText") %>' 不会奏效,您会发现这一点。此语法继承自经典 ASP。它可以在 ASP.NET 中的某些情况下用于在静态 HTML 中插入动态值,但不能用于设置服务器控件的属性。

关于c# - 为什么我不能设置asp :Label Text property by calling a method in the aspx file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1529944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com