GridView対。 HTMLテーブル(ASP.net 2.0)
-
03-07-2019 - |
質問
アプリケーションを完全に制御するには、GridViewまたはHTMLテーブルのどちらを好みますか? そしてなぜ?
たとえば、GridView / HTMLテーブルにオンザフライで行ごとにハイパーリンクを作成する必要があります。その機能(またはこの機能のような他の機能)を追加するのがより簡単なオブジェクトはどれですか?
注:プログラムでデータセットを作成しています
解決
ソートまたはページングの組み込みサポートが不要で、レンダリングされた出力をさらに制御したい場合は、Repeaterコントロールを使用してテーブルを出力することを検討します。組み込みの並べ替え/ページングが必要な場合は、GridViewが非常に役立ちます。
両方の長所を使いたい場合は、ASP.net 3.5にアップグレードして、ListViewを使用してください。
編集: 'on-the-fly hyperlinks-per-row'の意味を明確にできますか?
他のヒント
Gridviewから離れます。ページングをレンダリングするには、データセット全体をプルダウンする必要があります。必要な行(6,0000の30〜40行など)のみをレンダリングし、個別のページャーコントロールを使用すると、はるかに高速になります。 また、HTML / CSSに関しては、リピーターまたはリストビューを使用すると、コードを完全に制御できるため、デバッグがはるかに簡単になります。
プレーンHTML <!> lt; table <!> gt; Response.Writeによって生成されるのは簡単であり、Microsoft以外のシステムで作業する場合、HTMLの生成を難しくする冗長なASP.NET Webコントロールがなければ裸にならないという利点もあります。すでに知っています。
ソートやページングが必要ない場合は、Repeaterまたは新しいListViewを使用するとよいでしょう。 RepeaterとListViewを使用すると、<asp:Table>
コントロールに付属する退屈なサーバー側コードを回避しながら、HTMLを制御できます(この点でGridViewは完全なブラックボックスであり、ひどいHTMLを生成します):<!> quot; OK、新しい行。新しいセル。セルで何かをします。行にセルを追加します。テーブルに行を追加します。 <!> quot;を繰り返します。
一方、ページングとソートが必要な場合は、おそらくGridViewの方が優れたソリューションです。
データの並べ替え/ページングが必要な場合でも、GridViewまたはより単純なRepeaterのようなコントロールを使用して独自のhtmlを構築できます。
たとえば、リピーターを使用すると、AllowPagingプロパティがtrue
に設定されたPagedDataSourceデータソースを使用して、ページネーションのカスタムシステムを構築できます。
唯一の問題は、単純なRepeaterでは、GridViewがネイティブに行う作業を行うために、より多くのコードを記述する必要があることは明らかです。
しかし、結果は高速です。