C#LearningTutorial:HowtofilterTelerikGridbasedonpreviouspageselection然后提交,重新定向到telerik网格页面,其中所有记录都保存在所选类别的大表中。因此,例如一家宠物商店,该商店在下一页上有一个下拉列表,用于显示那里有什么类型的宠物,并且网格中填充了今天商店中可用的所有类型的宠物。日期过滤器在应用于数据绑定时已经排序。数据库通过edmx连接,它有2个没有关系的表,但是一个类别/宠物表详细说明了每个类别/宠物,然后是一个带有类别/宠物列的记录表,其中2个表有一个共同的字段。我一直在尝试通过使用ViewData来完成这项工作,这对于下拉列表来说效果很好,但无法填充下一页的网格。有点像http://demos.telerik.com/aspnet-mvc/grid/selectionserverside,但如果可能的话有一个下拉列表和2个页面。从文档中。TelerikGridforASP.NETMVC使用其内置的基于Linq的表达式引擎来执行网格操作——分页、排序和过滤。但在某些情况下,开发人员可能希望绕过表达式引擎和页面,自己对网格数据进行排序或过滤。这称为“自定义绑定”。继承人链接:http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-grid-data-binding-custom-binding.html按照示例;如果这是加载页面的控制器:[GridAction]publicActionResultIndex(GridCommandcommand){IEnumerabledata=GetData(command);vardataContext=newNorthwindDataContext();//寻呼机配置必填ViewData["total"]=dataContext.Orders.Count();返回视图(数据);然后你的帖子将是一个你可以过滤的地方:[GridAction][HttpPost]publicActionResultIndex(GridCommandcommand)//在这里使用回发变量更改查询IEnumerabledata=GetData(command);data=fromxindata.[entityname]wherex.category=desiredCategoryselectx;vardataContext=newNorthwindDataContext();//寻呼机配置必填ViewData["total"]=dataContext.Orders.Count();返回视图(数据);我遇到了同样的事情,所以我只是使用jQuery来获取每个页面的数据(将#category替换为您的类别下拉列表的ID):函数onDataBinding(e){showWaitDialog();vargrid=$('#Grid').data('tGrid');varargs='page='+e.page+'&category'+$('#category').val();$.ajax({url:"/Search/AjaxBinding/",type:"POST",data:args,dataType:"json",success:function(data){grid.total=data.total;grid.dataBind(data.data);hideWaitDialog();}});}将此添加到您的网格代码中:.ClientEvents(x=>x.OnDataBinding("onDataBinding"))控制器代码:[GridAction(EnableCustomBinding=true)]publicActionResultAjaxBinding(intpage,intcategory){varsearchResultsViewModel=//获取搜索结果的代码returnView(newGridModel{Data=searchResultsViewModel.SearchResults,Total=searchResultsViewModel.TotalCount});返回类别,并在将结果放入网格之前过滤结果我可以在没有任何代码的情况下给出一些指示(我的MVC有点生疏,我没有时间编写代码)。所以基本上你有一个带有下拉菜单的页面,然后是网格所在的另一个页面。你需要的是:HTH以上就是C#学习教程:如何根据上一页的内容选择过滤TelerikGrid分享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请右击联系管理员删除。如需转载请注明出处:
