9

私のページには 2 つの webGrid があります。1 つをクリックしてその列を並べ替えると、両方のグリッドがその列で並べ替えられます。1 つだけの列で並べ替えても、まったく並べ替えられません。

ヘッダーを同じページへのリンクにし、クエリ文字列に列と方向を指定することで、並べ替えが機能することに気付きました。これは、両方のグリッドが影響を受けていることを示しています。webGrid に問題を解決する機能があるかどうか、または自分で修正する必要があるかどうか疑問に思っていました。

「自分で修正する」ことを計画している方法は、最初に id 属性を htmlAttributes を設定してテーブル タグに追加することです。次に、jQuery を使用してすべての Web グリッドのこの ID を見つけ、その ID をリンク パラメータに組み込みます。次に、グリッドを含むページをロードするときに、それらのパラメーターに基づいてソートする列を強制的に設定します。

webGrid は、別の webGrid を含むページに配置するようには設計されていないようです。しかし、私の状況ではそれが望ましいと感じています。私はいくつかの標準的な方法 (組み込みまたは他の人が使用するもの) を使用することを好みます。

それで問題は、それを行うための最良の方法は何ですか?最善の方法がない場合、私の方法は良い方法ですか (何かを忘れていませんか)?

前もって感謝します。

4

1 に答える 1

15

次のプロパティを設定する必要があると思います。

string fieldNamePrefix = null 
//The value which prefixes the default querystring fields

string pageFieldName = null 
//A value that replaces the default querystring page field 


var grid1 = new WebGrid(canPage: true,  canSort: true, ajaxUpdateContainerId: "grid1", fieldNamePrefix:"g1",pageFieldName: "p1");

var grid2 = new WebGrid(canPage: true,  canSort: true, ajaxUpdateContainerId: "grid2", fieldNamePrefix:"g2",pageFieldName: "p2");
于 2011-03-18T14:09:48.600 に答える