大佬教程收集整理的这篇文章主要介绍了jquery – 在传递给Web服务之前将jqGrid rowNum从ALL更改为-1的最佳方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将网格请求传递给一个接受“行”的int的Web服务,我正在尝试找到如何以及何时将用户选择的“ALL”值更改为-1,然后再将其发送到网络服务.
下面是我清理过的网格代码.我在数据类型函数中的$.ajax之前尝试了一些不同的代码块.但大多数尝试似乎都是我必须以最可能的方式做到这一点.例如,
datatype: function(postdata) { if ($("#gridTableAssets").jqGrid('getGridParam','rowNum') == 'ALL') { $("#gridTableAssets").appendPostData({ "rows": -1,"page": 1 }); } $.ajax({...
但这样做似乎会导致实际的“页面”GridParam在随后的网格操作中被忽略,迫使我在其他地方处理它.似乎这是经常在那里做的事情,并且有干净的方式去做.
清理网格代码:
$("#gridTableAssets").jqGrid({ datatype: function(postdata) { $.ajax({ url: "/service/Repository.asmx/GetAssets",data: JSON.Stringify(postdata),type: 'POST',contentType: "application/json; charset=utf-8",error: function(XMLhttprequest,textStatus,errorThrown) { alert('error'); },success: function(msg) { var assetsgrid = $("#gridTableAssets")[0]; assetsgrid.addJSONData(JSON.parse(msg)); ... } }); },... pager: $('#pagerAssets'),rowNum: 15,rowList: [15,'ALL'],... onPaging: function(index,colindex,sortorder) { SessionKeepAlive(); } });
这是网络服务
[WebMethod] public String GetAssetsOfAssetStructure(bool _search,int rows,int page,String sidx,String sord,String filters)
现在谈谈解决方案.这很容易,但我建议将数据类型替换为数据类型的函数:’json’.您可以使用标准’json’类型在函数内部执行的所有操作.要将contentType更改为“application / json; charset = utf-8”,可以使用ajaxGridoptions选项(有关详细信息,请参阅Setting the content-type of requests performed by jQuery jqGrid).可以使用postData参数替换jQuery.ajax的数据参数,但只有在想要向服务器发送一些其他参数时才需要它(如How to filter the jqGrid data NOT using the built in search/filter box中所述).最后,我们收到如下内容:
$("#gridTableAssets").jqGrid({ datatype: 'json',gridview: true,url: '/service/Repository.asmx/GetAssets',//postData: postdata,// add some additional parameters ajaxGridoptions: { contentType: 'application/json; charset=utf-8' },mtype: 'POST',// ... pager: $('#pagerAssets'),serializeGridData: function (postData) { if (typeof postData.rows === "String") { // "ALL" postData.rows = 10000; // or -1 if your server } if (isNaN(postData.pagE)) { // fix NaN in page for rows="ALL" postData.page = 1; } return JSON.Stringify(postData); },// ... });
如果您计划在所有jqGrids中使用serializeGridData,ajaxGridoptions和一些其他参数,则可以在$.jgrid.defaults中定义此函数(请参阅另一个时间Setting the content-type of requests performed by jQuery jqGrid).
以上是大佬教程为你收集整理的jquery – 在传递给Web服务之前将jqGrid rowNum从ALL更改为-1的最佳方法全部内容,希望文章能够帮你解决jquery – 在传递给Web服务之前将jqGrid rowNum从ALL更改为-1的最佳方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。