3

これは、優先される方法とどちらかの利点の問題です。Repeater のようなものを使用してデータ駆動型のコントロールやページを開発するとき、私は行き詰まりに陥っています。

ASP.NET タグ (ラベルなど) を作成し、インラインでバインドしますか?

<asp:Label ID="companyName" runat="server" Text="<%# ((BillToCustomer)Container.DataItem).CompanyName %>" />

それとも、プレーン マークアップ用に .aspx/.ascx ファイルを残し、すべてのロジックをコード ビハインドに配置する方がよいでしょうか?

<asp:Label ID="companyName" runat="server" ondatabinding="companyName_DataBinding"/>

protected void legCustomerName_DataBinding(object sender, EventArgs e)
{
    ((Label)sender).Text = ((BillToCustomer)Page.GetDataItem()).CompanyName;
}

私はどちらの選択肢についても死ぬほど主張することができますが、1 つの方法にコミットする前に、すべての事実と意見を知りたいと思っています。

これについて議論することができた唯一のリソース ( OnDataBinding vs Inline: pros, cons and overload ) には、説得力のある詳細を含む多くの回答がありませんでした。

4

2 に答える 2

1

これをしばらく投げて同僚を跳ね返した後、Repeater の ItemDataBound イベントを使用して、コード ビハインドで値バインディングを保持する方がよいという結論に達したと思います。

マークアップは、ID を持つ Web コントロールで厳密に構成されています。私の場合、ほとんどの場合、ラベルです。マークアップ/デザインとコード ビハインドの責任が分割された場合、デザイナーは必要に応じてマークアップを自由に移動でき、開発者は値の設定を制御できます。設計者は、データ バインディング式を気にする必要はありません。

これにより、すべてを 1 つの式に詰め込もうとするのではなく、よりすっきりとした直感的なコードが可能になります。

これが私が最終的に使用したソリューションであるため、これを答えとして受け入れるつもりですが、確かにさらなる議論に興味があります.

于 2012-11-16T23:33:48.397 に答える
0

この 2 つはまったく同じです。"コード ビハインド" バージョンは、ASP.NET ページがコンパイルされるものと同じものです。

于 2012-11-14T03:01:17.967 に答える