jqGrid加载WebMethod数据

jqGrid加载WebMethod数据,jqgrid,Jqgrid,我正试图修改它以调用带有url属性的webmethod。 如何让构造函数调用WebMethod“Test2” // 及 [DataContract] 公共类JJ { [数据成员] 公共int ID; [数据成员] 公共字符串WSCOMPDESC; [数据成员] 公共字符串成本; [数据成员] 公共字符串WSCOMPSRC; [数据成员] 公共内部WSCOMPQTYSTOCK; [数据成员] 公共字符串压缩单元; [数据成员] 公众投票; [数据成员] 公共int综合废料; [数据成员] 公众

我正试图修改它以调用带有url属性的webmethod。
如何让构造函数调用WebMethod“Test2”


//

[DataContract]
公共类JJ
{
[数据成员]
公共int ID;
[数据成员]
公共字符串WSCOMPDESC;
[数据成员]
公共字符串成本;
[数据成员]
公共字符串WSCOMPSRC;
[数据成员]
公共内部WSCOMPQTYSTOCK;
[数据成员]
公共字符串压缩单元;
[数据成员]
公众投票;
[数据成员]
公共int综合废料;
[数据成员]
公众浮标;
[数据成员]
公共字符串COMP1_部分;
[数据成员]
公共字符串COMP1_项;
}
[数据合同]
公共类MM
{
[数据成员]
公共整数合计;
[数据成员]
公共int页;
[数据成员]
公共记录;
[数据成员]
公共列表行;
}
[网络方法]
公共MM Test2()
{
MM m=新的MM();
m、 记录=2;
m、 page=1;
m、 总数=1;
m、 行=新列表();
m、 添加(新JJ(){COMP1_ITEM=“1”,WSCOMPDESC=“A”});
m、 添加(newjj(){COMP1_ITEM=“2”,WSCOMPDESC=“B”});
返回m;
}

如果未实现数据的服务器端分页,则应返回所有数据。最简单的格式是项目数组。因此,您可以将
WebMethod
Test2
的代码修改为以下内容:

[WebMethod]
公共对象Test2(){
返回新的[]{
新的{COMP1_ITEM=“1”,WSCOMPDESC=“A”},
新的{COMP1_ITEM=“2”,WSCOMPDESC=“B”}
};
}
然后,您应该使用jqGrid的
ajaxGridOptions
选项将
contentType
设置为
“application/json;”“
“application/json;charset=utf-8”
,如果不使用WebMethod的任何其他属性,则使用
mtype:“POST”

最后一件重要的事情是:ASMX将返回的结果包装到
d
属性。所以返回的数据看起来像

{“d”:[{“COMP1_项”:“1”,“WSCOMPDESC”:“A”},{“COMP1_项”:“2”,“WSCOMPDESC”:“B”}
而不是

[{“COMP1_项”:“1”,“WSCOMPDESC”:“A”},{“COMP1_项”:“2”,“WSCOMPDESC”:“B”}]
因此,应该使用
jsonReader:{repeatitems:false,root:d}
来读取数据。最后一句话:您可以使用
postData:“
删除jqGrid发送所有不需要的参数

请参阅演示项目