1

ページにパブリックPOCOプロパティ(SiteDetail)があり、サーバーコントロールのプロパティを設定する際の最良のアプローチを知る必要があります。

  1. インラインコードとPage.DataBind();を使用します。負荷時

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

  2. インラインコードを使用せず、ページの読み込み時にコントロールプロパティを設定します

    lbName.Text = SiteDetail.Name;

Page.DataBind()負荷時に使用するのは「危険」ですか?

4

2 に答える 2

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>

違いはまったくありません

于 2011-08-18T04:10:00.517 に答える
0

だから...私はもう少し調査をしましPage.DataBind()たが、良いことではないことがわかりました。@ Muhammad Akhtarが言うように、必要なすべてのコントロールでDabaBindを呼び出す方が良いです。どちらの方法でも同じようにレンダリングされるので、インラインコードを使用することをお勧めします。より明確に、今私は持っています

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

とコードビハインド:

if (!IsPostBack)
{
        lbName.DataBind();
}
于 2011-08-18T21:30:22.497 に答える