ASP.NETの<asp:Panel >
との違いは何ですか?<asp:PlaceHolder >
いつどちらを使用する必要がありますか?
パネルはスパン (または div) に展開され、その中にコンテンツが含まれます。プレースホルダーはまさにそれであり、あなたが入れたものに置き換えられるプレースホルダーです。
プレースホルダーはそれ自体のタグをレンダリングしないため、外側の HTML タグのオーバーヘッドなしでコンテンツをグループ化するのに最適です。
パネルには外側の HTML タグがありますが、クールな追加のプロパティがいくつかあります。
BackImageUrl: パネルの背景画像の URL を取得/設定します
HorizontalAlign:親のコンテンツの水平方向の配置を取得/設定します
startvbnet hereに良い記事があります。
PlaceHolder コントロールをコンテナーとして使用して、Web ページに動的に追加されるサーバー コントロールを格納します。PlaceHolder コントロールは、目に見える出力を生成せず、Web ページ上の他のコントロールのコンテナーとしてのみ使用されます。コレクションを使用してControl.Controls
、PlaceHolder コントロールでコントロールを追加、挿入、または削除できます。
Panel コントロールは、他のコントロールのコンテナです。プログラムでコントロールを生成したり、コントロールのグループを非表示/表示したり、コントロールのグループをローカライズしたりする場合に特に便利です。
このDirection
プロパティは、Panel コントロールのコンテンツをローカライズして、アラビア語やヘブライ語など、右から左に記述される言語のテキストを表示するのに役立ちます。
Panel コントロールには、その内容の動作と表示をカスタマイズできるいくつかのプロパティがあります。BackImageUr
l プロパティを使用して、Panel コントロールのカスタム イメージを表示します。プロパティを使用しScrollBars
て、コントロールのスクロール バーを指定します。
HTML をレンダリングするときの小さな違い: PlaceHolder コントロールは何もレンダリングしませんが、Panel コントロールは としてレンダリングします<div>
。
詳細については、ASP.NET フォーラムをご覧ください。
Visual Studio 2010 の奇妙なバグ*。コントロールをプレースホルダー内に配置すると、デザイン ビュー モードでレンダリングされません。
これは特に Hidenfields と Empty ラベルに当てはまります。
パネルの代わりにプレースホルダーを使用したいのですが、GUI の設計時にプレースホルダー内に他のコントロールを配置できないという事実が嫌いです。