我这周才开始使用jqGrid。我正在尝试创建一个泛型函数,我可以调用该函数来加载具有不同postData参数的jqGrid,这些参数在函数调用中定义。
有没有办法做到这一点?我所考虑的是创建一个数组来存储参数的名称/值,然后将其设置为postData中的一个参数。然后,web服务将遍历并将这些参数添加到SQL存储过程调用中。
下面是通用代码:
var paramArray = new Array();
var p1 = new JQGridParam("CustomerName","John");
var p2 = new JQGridParam("ProductName","Kleenex");
var p3 = new JQGridParam("YearPurchased","2012");
paramArray[0] = p1;
paramArray[1] = p2;
paramArray[2] = p3;
$("#list").jqGrid({
datatype: "json",
url: "services/Customers.asmx/GetCustomerData",
mtype: "POST",
postData: {
sqlParams: paramArray //HERE IS WHERE I NEED THE HELP
},
ajaxGridOptions: { contentType: "application/json; charset=utf-8" },
ajaxRowOptions: { contentType: "application/json; charset=utf-8" },
serializeGridData: function (postData) {
return JSON.stringify(postData);
},
serializeRowData: function (postData) {
return JSON.stringify(postData);
},
jsonReader: {
root: function (obj) { return obj.d.rows; },
page: function (obj) { return obj.d.page; },
total: function (obj) { return obj.d.total; },
records: function (obj) { return obj.d.records; },
},
colModel: [
{name: "CustID", index: "CustID" },
{name: "PurchaseAmount", index: "PurchaseAmount" }],
colNames: ["Customer ID", "Amount Purchased"],
pager: $("#pager"),
loadOnce: true,
rowNum: 10,
rowList: [10,25,50],
gridview: true,
viewrecords: true
});当我尝试这样做时,它抛出错误"cannot convert object of type System.String to type System.Array“。有人知道该怎么做吗?
发布于 2012-01-14 05:55:25
JSON字符串化数组。
JSON.stringify(paramArray);然后在您的Then服务中将JSON数据转换回您的对象。
发布于 2014-08-13 23:10:31
使用MVC .NET和C#时,JSON.stringify对我不起作用。相反,我只是序列化了表单,并将数据作为URL的一部分发送:
$("#myGrid").jqGrid({
url: '<%=Url.Action("MyControllerMethod", "MyController") %>' +
'?' + $('#myForm').serialize(),对于这个变通方法,我将mtype保留为"POST“。使用postData,我可以很好地获得要绑定的单个数字或字符串,但不能绑定数组。此解决方法将允许您将数组与C# MVC一起使用。
https://stackoverflow.com/questions/8853144
复制相似问题