我的页面上有一个公共POCO属性(SiteDetail),我需要知道在设置服务器控件的属性时最好的方法是什么:
使用内联代码和Page.DataBind();在负载
<asp:Label ID="lbName" runat="server" Text="<%# SiteDetail.Name %>"/
&GT;
不要在页面加载时使用内联代码和设置控件属性
lbName.Text = SiteDetail.Name;
在加载时使用Page.DataBind()
是否“危险”?
答案 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();
}