为什么PostData值永远不会发送到服务器?如果我用一个fixwed值postData:{test:“3”}它可以工作但是当使用函数时,没有任何东西传递给服务器..... Firebug不会显示任何测试变量的痕迹
$("#tblgrid").jqGrid({
datatype: 'json',
ajaxGridOptions: { contentType: "application/json" },
ajaxRowOptions: { contentType: "application/json", type: "POST" }, //row inline editing
serializeGridData: function(postData) { return JSON.stringify(postData); },
jsonReader: {
repeatitems: false,
id: "0",
cell: "",
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; }
},
url: 'orthofixServices.asmx/GetProductList',
postData: { test: function() { return $("#tid").val(); } },
datatype: 'json',
colNames: ['id', 'Product Description', 'Commission Rate'],
colModel: [
{ name: 'id', width: 50 },
{ name: 'description', index: 'desc', width: 380, editable: true },
{ name: 'commissionrate', index: 'com', width: 120, editable: true, unformat: percentUnFormatter, formatter: percentFormatter, editrules: { number: true} }
],
serializeRowData: function(data) {
var params = new Object();
params.id = 0;
params.prdid = 4;
params.description = data.description;
params.commissionrate = data.commissionrate;
var result = JSON.stringify({ 'passformvalue': params, 'oper': data.oper, 'id': data.id });
return result;
},
mtype: "POST",
rowNum: 4,
width: 500,
height: 80,
pager: '#pager',
editurl: "orthofixServices.asmx/ModifyProductList"
});
$("#tblgrid").jqGrid('navGrid', '#pager', { add: false, edit: false, del: true }, {
//edit options
}, {
//add options
}, {
//delete options
});
答案 0 :(得分:0)
postData
字段表示要发送到服务器的数据:
此数组直接传递给url。这是关联数组,可以这样使用:
{name1:value1...}
。
您的代码存在的问题是您正在尝试将函数(代码)传递给服务器。相反,您需要直接传递数据:
postData: { test: $("#tid").val() }
答案 1 :(得分:0)
您需要实际执行将postData设置为的函数。
将其添加到serializeRowData:
for (propertyName in data) {
if (data.hasOwnProperty(propertyName)) {
propertyValue = data[propertyName];
if ($.isFunction(propertyValue)) {
dataToSend[propertyName] = propertyValue();
} else {
dataToSend[propertyName] = propertyValue;
}
}
}