Webgrid具有过滤的结果

问题描述

| 我喜欢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\",)
     ); 
</div>
我认识到,例如点击网格中用于对控制器中的操作方法进行排序的列标题也被称为。当然,过滤器类为null会导致未过滤的结果集。 在对Webgrid进行排序或分页时,是否可以保持过滤结果的方式? 我不想使用jQuery !!! 提前致谢 托比 单击排序或页面链接时,是否可以定义添加调用链接的参数?     

解决方法

        啊哈问题是您需要在过滤器字段和Web网格周围都添加一个GET表单。然后,您需要进行一点点的Webgrid数据按摩,以便它以可识别的方式将其排序信息发布回去。我丢失了所读文章的链接,但这里有一个示例:ASP.NET MVC3 WebGrid-自定义,服务器端排序 您最终得到的网址是localhost / example / admin / thing?thingName = Hyatt&City =&State = TX&Country =&sort = city&sortdir = ASC