首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数组作为postData参数发送

将数组作为postData参数发送
EN

Stack Overflow用户
提问于 2012-01-13 23:43:30
回答 2查看 4.9K关注 0票数 3

我这周才开始使用jqGrid。我正在尝试创建一个泛型函数,我可以调用该函数来加载具有不同postData参数的jqGrid,这些参数在函数调用中定义。

有没有办法做到这一点?我所考虑的是创建一个数组来存储参数的名称/值,然后将其设置为postData中的一个参数。然后,web服务将遍历并将这些参数添加到SQL存储过程调用中。

下面是通用代码:

代码语言:javascript
复制
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“。有人知道该怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-14 05:55:25

JSON字符串化数组。

代码语言:javascript
复制
JSON.stringify(paramArray);

然后在您的Then服务中将JSON数据转换回您的对象。

票数 3
EN

Stack Overflow用户

发布于 2014-08-13 23:10:31

使用MVC .NET和C#时,JSON.stringify对我不起作用。相反,我只是序列化了表单,并将数据作为URL的一部分发送:

代码语言:javascript
复制
 $("#myGrid").jqGrid({
       url: '<%=Url.Action("MyControllerMethod", "MyController") %>' + 
            '?' + $('#myForm').serialize(),

对于这个变通方法,我将mtype保留为"POST“。使用postData,我可以很好地获得要绑定的单个数字或字符串,但不能绑定数组。此解决方法将允许您将数组与C# MVC一起使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8853144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档