Jquery 如何使用jqGrid自定义搜索在asp.net mvc中的控制器中调用操作

Jquery 如何使用jqGrid自定义搜索在asp.net mvc中的控制器中调用操作,jquery,asp.net-mvc,jqgrid,Jquery,Asp.net Mvc,Jqgrid,全部。 我在ASP.NETMVC中使用jqGrid。我为jqGrid表创建了一个js文件,这个文件包含getdata(getlist)和CRUD。这对我来说不是问题。 我的问题是在控制器中没有使用按钮调用操作。这对我不管用。 我的例子是: $(函数(){ $(“#网格”).jqGrid({ url:“/JqGrid/GetList”, 数据类型:“json”, mtype:'获取', colname:['ProductID','ProductName','UnitPrice'], colMode

全部。 我在ASP.NETMVC中使用jqGrid。我为jqGrid表创建了一个js文件,这个文件包含
getdata(getlist)
和CRUD。这对我来说不是问题。 我的问题是在控制器中没有使用按钮调用操作。这对我不管用。 我的例子是:

$(函数(){
$(“#网格”).jqGrid({
url:“/JqGrid/GetList”,
数据类型:“json”,
mtype:'获取',
colname:['ProductID','ProductName','UnitPrice'],
colModel:[
{key:true,hidden:true,name:'ProductID',index:'ProductID',editable:true},
{key:false,名称:'ProductName',索引:'ProductName',可编辑:true},
{key:false,name:'UnitPrice',index:'UnitPrice',可编辑:true}
],
pager:jQuery(“#pager”),
rowNum:10,
行列表:[10,20,30,40],
高度:“100%”,
viewrecords:是的,
有一次:是的,
标题:“Jqgrid列表A.saadati”,
emptyrecords:'没有要显示的记录',
jsonReader:{
根:“行”,
第页:“第页”,
总计:“总计”,
记录:“记录”,
重复项:false,
ProductID:“0”
},
自动宽度:正确,
多重选择:错误
}).navGrid(“#pager”,{edit:true,add:true,del:true,search:false,refresh:true},
{
//编辑选项
zIndex:100,
url:“/JqGrid/Edit”,
closeOnEscape:没错,
closeAfterEdit:true,
再现形式:正确,
完成后:功能(响应){
if(response.responseText){
警报(response.responseText);
}
}
},
{
//添加选项
zIndex:100,
url:“/JqGrid/Create”,
closeOnEscape:没错,
closeAfterAdd:true,
完成后:功能(响应){
if(response.responseText){
警报(response.responseText);
}
}
},
{
//删除选项
zIndex:100,
url:“/JqGrid/Delete”,
closeOnEscape:没错,
closeAfterDelete:true,
再现形式:正确,
msg:“您确定要删除此任务吗?”,
完成后:功能(响应){
if(response.responseText){
警报(response.responseText);
}
}
});
$(“#过滤器按钮”)。单击(函数(事件){
event.preventDefault();
filterGrid();
});
});
函数filterGrid(){
var postDataValues=$(“#grid”).jqGrid('getGridParam','postData');
//获取所有过滤器ID和值并添加到post对象
$('.filterItem')。每个(函数(索引,项){
postDataValues[$(item.attr('id')]=$(item.val();
});
$('#grid').jqGrid().setGridParam({postData:postDataValues,page:1}).trigger('reloadGrid');
警报(“功能是通过按钮呼叫,正常”);
}
注意:
$(“#filterButton”)。单击(..
是调用
filterGrid
,但
filterGrid
不起作用。我有一个文本框和按钮用于搜索

我的行动是

公共JsonResult GetList(字符串sidx、字符串sord、整型页面、整型行、字符串ProductName) { int PageIndex=Convert.ToInt32(第页)-1; int PageSize=行; var ListResult=db.Products.ToList(); int TotalRecords=ListResult.Count; var TotalPages=(int)数学上限((float)TotalRecords/(float)行); 如果(!string.IsNullOrEmpty(ProductName)) { ListResult=ListResult.Where(p=>p.ProductName.Contains(ProductName)).ToList(); } if(sord.ToUpper()=“DESC”) { ListResult=ListResult.OrderByDescending(s=>s.ProductName.ToList(); ListResult=ListResult.Skip(PageIndex*PageIndex).Take(PageSize).ToList(); } 其他的 { ListResult=ListResult.OrderBy(s=>s.ProductName.ToList(); ListResult=ListResult.Skip(PageIndex*PageIndex).Take(PageSize).ToList(); } var jsonData=new{total=TotalPages,page,records=TotalRecords,rows=listreult}; 返回Json(jsonData、JsonRequestBehavior.AllowGet); } 当然我知道,
filterGrid
函数是用于jqGrid的,不能调用top操作。但这段代码对我不起作用,我尝试用另一种方法调用URL操作,但也不起作用


请帮我一个忙。谢谢。

jqGrid支持两种可选方案:服务器端排序、分页和筛选以及客户端排序、分页和筛选。您当前使用服务器端排序和分页,但在服务器代码中不使用筛选,并使用
loadonce:true
,强制客户端排序、分页和筛选ing。您应该决定需要哪种方案(客户端或服务器端)。如果总行数(
db.Products.Count
)不大(小于1000或小于10000),则建议使用客户端(
loadonce:true
)方案。此外,您还编写了“$('#filterButton')。单击(..是调用filterGrid,但filterGrid不起作用。”您应该在注册
$(“#filterButton”)的位置包含代码片段。如果这是您的主要问题,请单击()
。如果您在错误的位置使用它,那么它将无法独立于任何jqGrid问题工作。您可以包含
警报(“在单击中”);
作为
$(“#filterButton”)的第一行。单击(函数(){/*此处*/})
代码对其进行测试。您应该描述问题“无法工作”更确切地说。你看到搜索工具栏了吗?…重要的是你使用了哪个版本的jqGrid和哪个fork谢谢你的回答。在jqGrid中不是我的工具栏。我有一个3个cluomns和一个导航网格在下网格中,可以添加、编辑、删除、刷新和搜索正确工作。我想要带s的过滤器