以下有什么区别?
<asp:Label runat="server">Hello World</asp:Label>
<asp:Label runat="server" Text="Hello World"></asp:Label>
更新:
如果它们完全相同,那么为什么
<asp:Label ID="Label1" runat="server">
There were <%#transactionCount%> transactions today
</asp:Label>
在使用单值数据绑定时正确绑定并显示transactionCount的正确值,而...
<asp:Label ID="Label1" runat="server" Text="There were <%#transactionCount%> transactions today">
</asp:Label>
在页面中没有显示transactionCount的值?
再次更新
我理解使用Literal控件的要点。我会相应地拍我的脸 - 但它仍然无法解决问题 - 尽管可能更接近解决方案。
如果我使用......
<asp:Literal ID="Label1" runat="server" Text="<%#transactionCount%>"></asp:Literal>
...我看到transactionCount的值显示在网页中。
另一方面,如果我在单值数据绑定字段前放置任何字符或单词,例如
<asp:Literal ID="Label1" runat="server" Text="No. <%#transactionCount%>"></asp:Literal>
...不会出现transactionCount。
答案 0 :(得分:4)
他们将在最终的HTML中呈现相同的内容。但是,Text
属性对于以编程方式设置代码中显示的文本非常有用。
答案 1 :(得分:2)
是的,不满足ITextControl接口。请记住,99%的开发人员使用Labels
错误 - 通常应该使用Literals
来保存输出,如果不是<%# Databind() %>
。对于大多数事情,您不需要服务器端跨度。
如果要使用标签,请在表单中创建标签字段:
<asp:Label runat="server" id="LabelForFirstName" Text="First Name:" AssociatedControlID="firstname />
<asp:TextBox runat="server" id="FirstName" />
给一个标签绑定到第一个名称标签,并在语义上纠正HTML。
答案 2 :(得分:0)
如果您将文本设置为Hello World,则无法以代码隐藏文件的方式更改其值。
然而,woukd允许您将值更改为mytxt.Text =“New text”
但他们将以同样的方式呈现。
答案 3 :(得分:0)
它们不同的另一个原因是支持implicit localization。在资源文件中指定ID.Property(即Label1.Text)。