我喜欢Razor-ViewEngine中的Webgrid HTML-Helper。
不幸的是,我遇到了一个问题。使用内置的排序和分页功能,我松开了我的过滤器设置。
在网格上方,我有一个filtercontrol(表单),通过填充过滤器类并在提交时在控制器上调用actionmethode来过滤网格中显示的行。
控制器中的代码:
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,导致未过滤的结果集。
有没有办法在排序或分页webgrid时保持我的结果被过滤? 我不想使用jquery !!!
提前致谢 托比
是否可以定义添加到单击排序或页面链接时调用的链接的参数?
答案 0 :(得分:0)
你最终得到像localhost / example / admin / thing这样的网址?thingName = Hyatt&amp; City =&amp; State = TX&amp; Country =&amp; sort = city&amp; sortdir = ASC