2011-08-18 38 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