如何在标记中“绑定”标签的文本属性

3
基本上我想找到一种方法来做类似以下的事情:
<asp:Label ID="lID" runat="server" AssociatedControlID="txtId" Text="<%# MyProperty %>"></asp:Label>

我知道我可以在代码后台设置它(使用 lId.Text = MyProperty),但我更喜欢在标记中完成,只是我的确找不到解决方案。(MyProperty 是一个字符串属性)

8个回答

11
你可以做到。
<asp:Label runat="server" Text='<%# MyProperty %>' />

然后在代码后端进行Page.DataBind()。


你左边漏掉了百分号...应该是:`Text='<%# MyProperty %>'`不管怎样,谢谢。你的答案是唯一一个99%正确的 :)另外值得注意的是,你也可以这样做:`Text='<%# myClass.MyProperty %>'` - maplemale

10

我认为这不是问题的答案,因为问题明确要求在标签中显示属性的值。我不明白这种方法如何提供实现这一目标的途径。 - Serhat Ozgel
使用CodeExpressionBuilder,我可以轻松地在标签上显示属性的值。只需查看那篇博客文章,它非常有用。 - Adam Vigh

4
在你的代码后端保留标记并调用Page.DataBind();。

2
<asp:Label id="lID" runat="server"><%= MyProperty %></asp:Label>

由于ASP.NET标记不允许使用<% %>结构,因此您不能使用Text="<%= MyProperty %>"。


谢谢,我已经采用了这个解决方案,但是即使调用Page.DataBind()也可以正常工作。 - Adam Vigh

0
你可以这样做:
<asp:Label ID="lblCurrentTime" runat="server">
    Last update: <%=DateTime.Now.ToString()%>
</asp:Label>

0
从代码后台调用lID.Databind()函数

0
<div> <%=MyProperty"%></div>

标签控件甚至不渲染div标记。也许如果您建议使用<span>,这会有意义,但即使如此,它也不会产生相同的效果,因为您避免了所有标签控件的属性,并且不允许使用主题。 - Serhat Ozgel
是的,在我的情况下不需要使用div,因为我正在使用控件的AssociatedControlId属性为文本框创建标签。 - Adam Vigh

0

当您使用 <%# MyProperty %> 声明时,您需要进行数据绑定,但是当使用 <%= MyProperty %> 时,您不需要(这类似于只写 Response.Write(MyProperty))。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接