ユーザーが選択したさまざまな検索基準に基づいて、StringBuilderをコードの背後に使用して巨大なhtml表を作成します。サブヘッダ、ネストされたテーブルなどを作成しなければならないので、ロジックは複雑です。メンテナンスや変更は本当に難しいです。この種の問題に対処するより良い方法はありますか?ASP.NETで表を作成するためのその他のオプション
ありがとうございます!
ユーザーが選択したさまざまな検索基準に基づいて、StringBuilderをコードの背後に使用して巨大なhtml表を作成します。サブヘッダ、ネストされたテーブルなどを作成しなければならないので、ロジックは複雑です。メンテナンスや変更は本当に難しいです。この種の問題に対処するより良い方法はありますか?ASP.NETで表を作成するためのその他のオプション
ありがとうございます!
数年前、私は同じ状況にあった。問題には、動的な列、小見出し、セル、すべてが含まれていました。典型的なテーブルは約1000行と50列です(これは50,000セルです)。最初の実装ではGridView
が使用され、恐ろしく実行されました。私は、Literal
コントロールを使って、非常に軽量のループ制御であるRepeater
を使用するという見解を書き直しました。それは100%StringBuilder
に対して狂気のビットで支配した。私は、標準のhtmlビット(ASP.NET MVCの "htmlヘルパー"のようなもの)の文字列表現を返し、オブジェクトモデルを完全に隔離した静的メソッドと組み合わせました。私は忘れていましたが、Repeater
とのコントロールがレンダリングされる方法はレスポンスストリームに直接関係していると思いますので、パフォーマンスはStringBuilder
と似ています。
でも、上記は複雑で、あなた自身のアプローチに似ています。しかし、健全性を維持するための鍵は、別々の部分(オブジェクトモデル、html生成、および動的バインディング)を分離しておくことです。それはあなた自身のアドホックなフレームワークを構築するのとほとんど同じです。しかし、このような真面目な仕事をするには、ウェブブラウザに限定されているときには、ぎりぎりとした態度をとる必要があります。
ネイティブASP.NETテーブル制御