所以我有一个基本的例子,jqgrid在ASP.NET MVC工作,javascript看起来像这样:
$(document).ready(function() { $("#list").jqGrid({ url: '../../Home/Example',datatype: 'json',myType: 'GET',colNames: ['Id','Action','Parameters'],colModel: [ { name: 'id',index: 'id',width: 55,resizable: true },{ name: 'action',index: 'action',width: 90,{ name: 'paramters',index: 'parameters',width: 120,resizable: true}],pager: $('#pager'),rowNum: 10,rowList: [10,20,30],sortname: 'id',sortorder: 'desc',viewrecords: true,multikey: "ctrlKey",imgpath: '../../themes/basic/images',caption: 'Messages' });
现在我试图实现他们在jqgrid examples(点击操作/网格数据)的搜索按钮。但我不明白他们如何实现它。我期望一个“search:true”和一个实现它的方法。
解决方法
我最近自己实现了(昨天实际上)第一次。我最大的障碍是弄清楚如何写控制器功能。函数签名是什么花了我最长的时间(注意_search,searchField,searchOper和searchString参数,因为那些asp.net mvc示例中我缺少的)。 javascript的帖子到控制器的初始加载和搜索调用。你会在代码中看到我检查_search参数是否为true。
下面是控制器和javascript代码。对于任何格式问题,我的道歉,因为这是我第一次在这里张贴。
public ActionResult GetAppGroups(string sidx,string sord,int page,int rows,bool _search,string searchField,string searchOper,string searchString) { List<AppGroup> groups = service.GetAppGroups(); List<AppGroup> results; if (_search) results = groups.Where(x => x.Name.Contains(searchString)).ToList(); else results = groups.Skip(page * rows).Take(rows).ToList(); int i = 1; var jsonData = new { total = groups.Count / 20,page = page,records = groups.Count,rows = ( from appgroup in results select new { i = i++,cell = new string[] { appgroup.Name,appgroup.Description } }).ToArray() }; return Json(jsonData); }
这里是我的HTML / Javascript:
$(document).ready(function() { $("#listGroups").jqGrid({ url: '<%= ResolveUrl("~/JSON/GetAppGroups/") %>',mtype: 'GET',caption: 'App Groups',colNames: ['Name','Description'],colModel: [ { name: 'Name',index: 'Name',width: 250,resizable: true,editable: false},{ name: 'Description',index: 'Description',width: 650,],loadtext: 'Loading Unix App Groups...',multiselect: true,pager: $("#pager"),rowList: [5,10,50],sortname: 'ID',imgpath: '../scripts/jqgrid/themes/basic/images' //}); }).navGrid('#pager',{search:true,edit: false,add:false,del:false,searchtext:"Search"});