服务器控件属性的内联代码

时间:2011-08-18 03:40:40

标签: asp.net data-binding inline-code

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

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

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

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

    lbName.Text = SiteDetail.Name;

  3. 在加载时使用Page.DataBind()是否“危险”?

2 个答案:

答案 0 :(得分:1)

你看到渲染的来源了吗?完全没有区别。两个标签都将在跨度中呈现文本。只需执行一个简单的测试就可以了。

这是我的测试内容

<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>

您将看不到任何差异

答案 1 :(得分:0)

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

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

和代码背后:

if (!IsPostBack)
{
        lbName.DataBind();
}