有人可以向我解释一下吗:

我有一个标签,并且希望能够通过在aspx文件中调用一个方法来设置Text属性。如果我在后面的代码中设置该属性,则效果很好,但是我真的想在aspx文件中设置此属性。

我已经尝试了几件事,但是我希望能做的是:

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

这样做时我没有收到任何错误,但是我的方法从不被调用,并且Text属性保留为空。

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

更新:我的第一次尝试是:
<asp:Label ID="Label1" runat="server" Text=<%= GetMyText("LabelText") %> />

但这导致以下错误:

最佳答案

语法= 是数据绑定(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 =''将不起作用,您会发现。该语法是从经典ASP继承的。在ASP.NET中的某些情况下,可以将其用于在静态HTML中插入动态值,但不能用于设置服务器控件的属性。

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

10-13 07:45
查看更多