1

我的页面上有一个公共 POCO 属性(SiteDetail),我需要知道在设置服务器控件的属性时最好的方法是什么:

  1. 使用内联代码和 Page.DataBind(); 负载

    <asp:Label ID="lbName" runat="server" Text="<%# SiteDetail.Name %>"/>

  2. 不要在页面加载时使用内联代码和设置控件属性

    lbName.Text = SiteDetail.Name;

Page.DataBind()在负载上使用是否“危险” ?

4

2 回答 2

1

你看到渲染的源了吗?完全没有区别。两个标签都将在 span 中呈现文本。只需执行一个简单的测试,您就会清楚。

这是我的测试

<asp:Label ID="Label1" runat="server" Text='<%#test %>'></asp:Label>
<asp:Label ID="Label2" runat="server"></asp:Label>

这是下面生成的源。

 <span id="Label1">this text is from binding expression</span>
 <span id="Label2"><br/>this text set from code behind</span>

你会看不出有什么不同

于 2011-08-18T04:10:00.517 回答
0

所以......我做了更多的研究,发现Page.DataBind()这不是一件好事,最好在你需要的每个控件上调用 DabaBind,正如@Muhammad Akhtar 所说,两种方式呈现相同,所以我更喜欢使用内联代码,因为它看起来更清楚,现在我有

<asp:Label ID="lbName" runat="server" Text="<%# SiteDetail.Name %>"/>

和后面的代码:

if (!IsPostBack)
{
        lbName.DataBind();
}
于 2011-08-18T21:30:22.497 回答