簡體   English   中英

服務器控件屬性上的內聯代碼

[英]inline code on server control properties

我的頁面上有一個公共POCO屬性(SiteDetail),我需要知道設置服務器控件屬性時最好的方法是什么:

  1. 使用內聯代碼和Page.DataBind(); 負載

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

  2. 不要在頁面加載時使用內聯代碼並設置控件屬性

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM