jqgrid工具栏过滤器参数与.asmx web服务链接
我正在使用jqgrid和工具栏过滤器(搜索)。在服务器端,我有一个.asmxweb服务,它在绑定jqgrid之后被调用 第一次加载jqgrid时,发送到web方法的参数为: _搜索:正确 nd:1384937982166 页码:1 行:10 sidx:“ sord:“描述” 当我在每列上方的过滤器文本框(例如所有者列)中输入一些文本时,发送到web方法的参数如下所示: 所有者:“样本” _搜索:正确 nd:1384937982166 页码:1 行:10 sidx:“ sord:“描述” 到目前为止还不错。但是,当我清除textbox以加载所有数据而不进行任何筛选时,参数“Owner”不会发送到服务器,我得到以下错误: “无效的web服务调用,缺少参数值:\u0027Owner\u0027。” 那个么,我应该在服务器端使用什么签名来处理网格中所有列的过滤呢?jqgrid工具栏过滤器参数与.asmx web服务链接,jqgrid,Jqgrid,我正在使用jqgrid和工具栏过滤器(搜索)。在服务器端,我有一个.asmxweb服务,它在绑定jqgrid之后被调用 第一次加载jqgrid时,发送到web方法的参数为: _搜索:正确 nd:1384937982166 页码:1 行:10 sidx:“ sord:“描述” 当我在每列上方的过滤器文本框(例如所有者列)中输入一些文本时,发送到web方法的参数如下所示: 所有者:“样本” _搜索:正确 nd:1384937982166 页码:1 行:10 sidx:“ sord:“描述” 到目前为
谢谢问题如下:ASMX web服务要求在每次请求服务器时始终发送方法的所有参数。另一端的jqGrid(在使用或使用的情况下)仅在设置了过滤器时才发送过滤器信息(如所有者:“示例”) 要解决此问题,您可以使用
serializeGridData
回调中的Owner
(或其他)扩展参数,这些参数将被发送到服务器。比如说
序列化GridData:函数(postData){
如果(postData.Owner==未定义)postData.Owner=null;
返回JSON.stringify(postData);
}
或
序列化GridData:函数(postData){
返回JSON.stringify($.extend(true,{Owner:null},postData));
}
还有一句话。如果网格中有许多列,则必须在ASMX Web方法中包含许多参数(每列一个附加参数)。我觉得这不好。您应该考虑使用<代码> StrugREST:Trime< /Cord>选项。参数将如何发送到服务器的格式发生变化。如果使用stringResult:true
选项,jqGrid将一个带有固定名称的参数过滤器发送到服务器。参数的值是JSON字符串。在这种情况下,您可以将过滤器
从JSON反序列化到服务器上的对象
还有一点很重要。我建议您考虑使用<代码>加载一次:网格的真< /代码>选项。如果数据集中没有那么多行,那么使用该选项是非常实用的。在这种情况下,服务器不需要实现服务器端数据分页、排序和过滤。相反,web方法应该一次返回所有数据,jqGrid将为您实现分页、排序和过滤。谢谢Oleg;你的回答帮助了我