Webグリッドを設定しましたが、正常に機能しているようで、並べ替えとページングが可能です。フィルタオプションを追加しましたが、これもうまく機能しますが、結果をフィルタリングしてから並べ替えると、フィルタが失われ、すべてのレコードが表示されます。
これが私のRazorビューコードです:
@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "Get", InsertionMode = InsertionMode.Replace, UpdateTargetId = "myGrid" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Document Search</legend>
<div class="editor-label">
@Html.Label("Enter a Document code:")
</div>
<div class="editor-field">
@Html.Editor("search")
</div>
<p>
<input type="submit" value="Search" />
</p>
</fieldset>
}
@{
WebGrid grid = new WebGrid(null, rowsPerPage: 10, canPage: true, canSort: true, ajaxUpdateContainerId: "myGrid");
grid.Bind(Model, autoSortAndPage: true);
}
<div id="myGrid">
@grid.GetHtml(mode: WebGridPagerModes.All, firstText: "First Page", nextText: "Next", previousText: "Previous", lastText: "Last Page", numericLinksCount: 10,
columns: grid.Columns(
grid.Column("DocumentID", "Document Code", canSort: true),
grid.Column("Title", "Document Title", canSort: true)
)
)
</div>
そして、これが私の行動です:
public ActionResult Index(string search)
{
List<DocumentIndexViewModel> viewModel = Mapper.Map<List<DocumentIndexViewModel>>(DocumentService.GetDocumentsBySearch(search));
if (Request.IsAjaxRequest())
return PartialView("_IndexGrid", viewModel);
else
return View(viewModel);
}
表示されたレコードを並べ替えるときにフィルターを維持するにはどうすればよいですか?どういうわけか、ソートリンクに検索文字列を追加する必要があるようですが、どのように進めるかがわかりません。