Razor-ViewEngine の Webgrid HTML ヘルパーが気に入っています。
残念ながら、私は問題に直面しています。組み込みの並べ替え機能とページング機能を使用すると、フィルター設定が失われます。
グリッドの上にフィルター コントロール (フォーム) があり、送信時にフィルター クラスを入力し、コントローラーでアクション メソッドを呼び出すことによって、グリッドに表示される行をフィルター処理します。
コントローラーのコード:
public ActionResult DeliveryContractList(SampleClassFilter filter){
// Populate a filtered List of Items to Show
IList<SampleClass> model = FillList(filter);
// Return a View with the List.
return View("SampleClassList", model);
}
景色:
@model IEnumerable<SampleClass>
@{
ViewBag.Title = "SampleClassList";
}
@using(Html.BeginForm()){
// Form to Set the Filter
...
}
<div id = "SampleClassList">
var grid = new WebGrid(Model, canPage: true, canSort: true, ajaxUpdateContainerId: "SampleClassList");
@grid.GetHtml(htmlAttributes: new {id = "gridSampleClass"}, columns:
grid.Columns(
grid.Column("Foo", "For", canSort: true),
grid.Column("Bar", "Bar", canSort: true),
)
);
</div>
たとえば、グリッドの列ヘッダーをクリックしてソートすると、コントローラーのアクションメソッドも呼び出されることがわかりました。もちろん、フィルター クラスは null であり、フィルター処理されていない結果セットにつながります。
Web グリッドの並べ替えまたはページング時に、結果をフィルタリングしたままにする方法はありますか? jqueryは使いたくない!!!
前もってありがとうトビ
並べ替えまたはページ リンクをクリックしたときに呼び出されるリンクに追加されるパラメーターを定義することはできますか?