[英]inline code on server control properties
我的頁面上有一個公共POCO屬性(SiteDetail),我需要知道設置服務器控件屬性時最好的方法是什么:
使用內聯代碼和Page.DataBind(); 負載
<asp:Label ID="lbName" runat="server" Text="<%# SiteDetail.Name %>"/
>
不要在頁面加載時使用內聯代碼並設置控件屬性
lbName.Text = SiteDetail.Name;
在加載時使用Page.DataBind()
是否“危險”?
您看到渲染的源了嗎? 完全沒有區別。 兩個標簽都將在跨度中呈現文本。 只需執行一個簡單的測試,您便會清楚。
這是我要測試的
<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>
您將看不到任何區別
所以...我進行了更多研究,發現Page.DataBind()
不好,最好在所需的每個控件上調用DabaBind,就像@Muhammad Akhtar所說的那樣,兩種方式都呈現相同的效果,所以我更喜歡使用內聯代碼,因為它看起來更加清晰,現在我有了
<asp:Label ID="lbName" runat="server" Text="<%# SiteDetail.Name %>"/>
和后面的代碼:
if (!IsPostBack)
{
lbName.DataBind();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.