2011-08-18 91 views
1

我有我的网页上公开POCO属性(SiteDetail),我需要知道设置服务器控件的属性时,什么是最好的办法:内嵌代码

  1. 使用内嵌代码和页面。的DataBind();负载

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

  2. 不要使用内嵌代码,并在页面加载

    lbName.Text = SiteDetail.Name;

设置控件的属性是它的 “危险”,使用负载Page.DataBind()

回答

0

没有区别所以......我做了一些调查研究,发现Page.DataBind()是不是一件好事,不如叫DabaBind你需要每一个控制,如@穆罕默德说阿赫塔尔,两种方式呈现相同的,所以我更喜欢,因为它似乎更清晰的使用内嵌代码,现在我有

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

和后面的代码:

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

你可以给我参考,你发现,调用Page.DataBind()不好? –

+0

当然,这里是http://aspalliance.com/1533_ASPNET_Performance_Tips.14 – Milox

+0

.hmm,这是一个调用Page.DataBind()方法的问题,但是如果你通过标签调用databind方法标签,那又是恐慌。这样,你必须绑定然后调用数据绑定方法。但是如果你在后面的代码中分配文本属性,你必须在一个地方做,而且代码更易读,错误的机会也更小。 –

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> 

你会看到在所有

+0

是的,是相同的渲染,我喜欢使用内联代码,因为它看起来更清晰,请参阅下面的答案,并且比你;) – Milox