2011-06-17 12 views
0

ユーザーが選択したさまざまな検索基準に基づいて、StringBuilderをコードの背後に使用して巨大なhtml表を作成します。サブヘッダ、ネストされたテーブルなどを作成しなければならないので、ロジックは複雑です。メンテナンスや変更は本当に難しいです。この種の問題に対処するより良い方法はありますか?ASP.NETで表を作成するためのその他のオプション

ありがとうございます!

答えて

0

数年前、私は同じ状況にあった。問題には、動的な列、小見出し、セル、すべてが含まれていました。典型的なテーブルは約1000行と50列です(これは50,000セルです)。最初の実装ではGridViewが使用され、恐ろしく実行されました。私は、Literalコントロールを使って、非常に軽量のループ制御であるRepeaterを使用するという見解を書き直しました。それは100%StringBuilderに対して狂気のビットで支配した。私は、標準のhtmlビット(ASP.NET MVCの "htmlヘルパー"のようなもの)の文字列表現を返し、オブジェクトモデルを完全に隔離した静的メソッドと組み合わせました。私は忘れていましたが、Repeaterとのコントロールがレンダリングされる方法はレスポンスストリームに直接関係していると思いますので、パフォーマンスはStringBuilderと似ています。

でも、上記は複雑で、あなた自身のアプローチに似ています。しかし、健全性を維持するための鍵は、別々の部分(オブジェクトモデル、html生成、および動的バインディング)を分離しておくことです。それはあなた自身のアドホックなフレームワークを構築するのとほとんど同じです。しかし、このような真面目な仕事をするには、ウェブブラウザに限定されているときには、ぎりぎりとした態度をとる必要があります。

1

すべてのASPコントロールとHtmlコントロールは、クラスにカプセル化されています。 Tableクラス(ASPの場合)およびHtmlTable(より軽量なHTML専用クラスの場合)に興味があります。

私が選択しなければならないのは、サーバー側のイベントをテーブルに追加しない限り、htmlのものになります。

関連する問題