0

Webグリッドレコードで利用可能な年に対応する一連のチェックボックスを上部に表示するMVCサイト/ビューがあります。チェックボックスをクリックして、Webグリッドのデータをフィルタリングしたいと思います。私はそれを機能させていますが、ウェブグリッドの見出しをクリックして並べ替えると、チェックボックスがオフにリセットされます。

私はWebフォームプログラミングに慣れているので、選択を維持するために常にビューステートに依存してきました。

MVCの世界でこれを行うにはどうすればよいですか?

ビューにチェックボックスを表示するための私のコードは次のとおりです。

  @using (Ajax.BeginForm(new AjaxOptions { InsertionMode=InsertionMode.Replace,UpdateTargetId="myGrid"}))
{
    foreach (var y in Model.Years)
    {
      <input type="checkbox" name="cbYears" value="@y.Value" />
      <label for="cbYears">@y.Value</label>
    }
<br />
<input type="submit" value="Filter Results" />
}

グリッドは部分ビューで表示されます。

TIA

4

2 に答える 2

1

MVCの世界でこれを行うにはどうすればよいですか?

グリッドで並べ替えを実行するときは、リクエストでフィルタリングオプションを送信する必要があります。並べ替えを実行するときはいつでも、現在のフィルターオプション、現在のページネーション、およびクエリ文字列またはフォームのいずれかでリクエスト内のグリッドに関連するその他のものを送信する必要があります。このようにして、状態を維持する必要はありません。必要なすべての情報がリクエストで利用できるためです。

例:jqgridが表示されている場合は、並べ替え、フィルタリング、ページネーション、グループ化などの多くのオプションが提供されます。最初に特定の列/値のグリッドをフィルタリングした後、並べ替えを行うと、グリッドは現在のフィルタリングされた列/値と並べ替えを追加しますリクエストではすべてをクエリ文字列として列に並べます。サーバー側では、すべてがクエリ文字列で利用できるため、状態を保持する必要はありません。

同様のアプローチに従います。

于 2012-07-17T06:41:21.760 に答える