0

私のアプリケーションのデータテーブルにはたくさんの列があります。ユーザーが異なれば、特定の順序で異なる列のセットが必要になります。私のやり方は、テーブルの各列に一意のIDを関連付けて、ユーザー設定でそれらを保存することです。例えば:

columnsToDisplay = "1,4,23,12,2,5,6,7,8,13,15"

私の見解では、テーブルをレンダリングするためにテーブルモデル(ASP.NET MVCを使用しています)を反復処理する場合に使用しています。これは正しい方法ではないと思います。50列のテーブルを想像してみてください。それ以外の場合は、50回実行してください。jQueryやクライアント側のスクリプトプラグインを使用せずにこの問題を解決するための理想的なアプローチは何ですか?

編集: これが私が今していることです。各列を使用設定と比較しています。

foreach(var col in model)
{ if(col.name == id) {
<td>{{id}}</td>}else if(col.name == customerName) {
<td>{{name}}</td>}else if(col.name == balance) {
<td>{{balance}}</td>}else if(col.name == createdOn) {
<td>{{createdOn}}</td>} 
}
.....

等々...

4

1 に答える 1

0

これらのテーブルが読み取り専用の場合 (サーバーにポストバックできる必要がない場合)、モデル データをIDictionaryオブジェクトの配列にスローすることで問題を解決できる可能性があります。次に、columnsToDisplay(int の配列として) の値を使用して、ビューを作成するときに関連する列を取得できます。

あなたのモデルが呼ばれると仮定すると、このようなものmodel

model.ColumnArray = { 2, 4, 6, 1, 0 };

次に、オブジェクトを持つmodelと呼ばれるプロパティがあると仮定します。RowsIDictionary

@foreach(var model in Model.Rows)
{
    <tr>
    foreach(var column in Model.ColumnArray)
    {
        <td>@model[column]</td>
    }
    </tr>
}
于 2013-01-15T01:59:43.377 に答える