非常に多くの異なるコントロールから選択できます!ASP.NETでデータを表示するために使用するコントロールを決定するためのベストプラクティスは何ですか?
非常に多くの異なるコントロールから選択できます!ASP.NETでデータを表示するために使用するコントロールを決定するためのベストプラクティスは何ですか?
回答:
それは本当にあなたが達成しようとしていることに関するものです
Gridview-デザインに制限があり、htmlテーブルのように機能します。編集/更新、ページ、並べ替えなどの組み込み機能の詳細。オーバーヘッドがたくさん。
DataGrid-古いバージョンのGridview。グリッドビューはスーパーデータグリッドです。
データリスト-Gridviewのよりカスタマイズ可能なバージョン。オーバーヘッドもあります。自分で設計する必要があるため、より多くの手動作業。
ListView-新しいDatalist :)。データリストとグリッドビューのほぼハイブリッドであり、ページングを使用してグリッドビューのような機能を構築できますが、設計の自由度があります。このファミリーの新しいコントロールの1つ
リピーター-非常に軽量。ヘッダー、フッターなどの組み込み機能はありません。オーバーヘッドが最も少ない。
他の誰もがそれを打った:それは依存する。
次に、いくつかの具体的なガイダンスについて(上記のWebDudeの優れた答えを拡張)...
デザインは、データの自然なスプレッドシートまたはグリッドビューに適合しますか?GridView。
おそらくヘッダーとフッターを使用して、おそらくデータの各レコードの特定のコントロールやフォーマットを使用して、データのリストまたはその他のフォーマットされたビューを表示する必要がありますか?(例えば、カスタマイズされたリンク、おそらくLinkButtons、または特定の編集コントロール?)この表示は、スプレッドシートまたはグリッドビューに自然に収まりませんか?リストビュー
ListViewのすべての基準を満たしていても、当然グリッドに収まる場合は、DataListを検討することができます。
いくつかのカスタムデザインビットで反復された基本的なデータが必要なだけで、ヘッダーもフッターもない、すてきでクリーンなリピーターを選びます。
次のサンプルコードの宣言は、3つすべて(ListView、DataList、Repeater)で可能です。
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
次のリストで、それぞれに使用可能なテンプレートとオプションを確認し、違いを自分で確認できます
ListView(編集、グループ、挿入、レイアウトに注意)
DataList(スタイルのペアに注意)
リピータ
CompositeDataBoundControl:
次のクラス階層(および関連するコントロール)を見てください。
これらのコントロールは、テンプレートに他のasp.netコントロールをホストして、バインドされたデータをユーザーに表示します
ListViewコントロール
ListViewコントロールも、データの表示にテンプレートを使用します。ただし、データを操作する際により多くのシナリオを可能にする多くの追加テンプレートをサポートしています。これらのテンプレートには、LayoutTemplate、GroupTemplate、ItemSeparatorTemplateが含まれます。
ListViewコントロール(DataListおよびRepeaterとは異なります)は、データソースコントロールを使用してデータを編集、挿入、および削除する機能も暗黙的にサポートします。これらのシナリオごとに個別のテンプレートを定義できます。
DataListコントロール
DataListコントロールは、Repeaterコントロールのように機能します。データセットの各行のデータを繰り返し、定義されたテンプレートに従ってこのデータを表示します。ただし、テンプレートで定義されたデータをさまざまなHTML構造内に配置します。これには、水平または垂直レイアウトのオプションが含まれます。れ、フローまたはテーブルレイアウトとして、データを繰り返す方法を設定することもできます。
DataListコントロールは、データソースコントロールを自動的に使用してデータを編集しません。代わりに、コマンドイベントを提供しますこれらのシナリオ用に独自のコードを記述できるをます。これらのイベントを有効にするには、テンプレートの1つにButtonコントロールを追加し、ボタンのCommandNameプロパティをedit、delete、update、またはcancelキーワードに設定します。次に、DataListコントロールによって適切なイベントが発生します。
リピーターコントロール
Repeaterコントロールもテンプレートを使用してカスタムバインディングを定義します。ただし、データは個別のレコードとして表示されません。代わりに、テンプレートで指定したとおりにデータ行を繰り返します。これにより、1行のデータを作成し、ページ全体で繰り返すことができます。
Repeaterコントロールは読み取り専用のテンプレートです。つまり、ItemTemplateのみをサポートします。編集、挿入、削除を暗黙的にサポートしていません。この機能が必要な場合は、他のコントロールのいずれかを検討する必要があります。そうでない場合は、Repeaterコントロール用に自分でコーディングする必要があります。
上記の説明は、Microsoft.NET Framework 4を使用したMCTS試験70-515 Webアプリケーション開発からの抜粋です。
DataGridはこの本では言及されておらず、人気のあるGridViewに置き換えられており、他のユーザーがうまく回答しています
確かに!ASP.NET 4.0データツールの違いについてブログで説明しました。基本的に、グリッドビューは表形式の情報を提示する最も強力な方法ですが、リストビューコントロールは繰り返しデータをより複雑に表示するためのものです。ASP.NETの初心者にアドバイスを与える場合は、グリッドビューを完全に学習し、そもそも他のコントロールを無視するように指示します。
すべては、データをどのようにレイアウトしたいかにかかっています。
レイアウトを制御する必要がある場合(テーブルとCSSの比較など)、RepeaterまたはListViewを使用する場合。2つの間で、ListViewは、編集、選択、挿入のためのより多くのイベントと組み込みコマンドを提供します。さらに、ページングおよびグループ化機能。リピーターは非常にシンプルで、データを使用してレイアウトを繰り返します。手作業でレイアウトを構築しているため、ListviewとRepeaterにはさらに多くのコードが必要です。
GridViewは更新されたDataGridであるため、DataGridを使用する理由はほとんどありません。GridViewは、標準のASP.NETデータソースに接続すると非常にうまく機能しますが、多数のレイアウトルールがある表形式のレイアウトに制限されます。組み込みのレイアウトを使用しているため、GridViewではコードが少なくて済みます。