我有一个asp.net表单,上面有一个jqgrid。用户可以在主表单上输入帐号,然后在jqgrid上输入一些数据。
在用户将行保存在网格中时,我还想将表单中的帐号传递给保存过程,因为我们使用它来计算网格中行的一些折扣信息。
我不确定在保存时如何传递这些信息?
更新
我使用json作为我的数据类型,使用内联编辑并使用editurl将网格发布到Web服务,该服务处理将其保存到后端数据库。
更新2 - 解决方案
这是我用来传递文本框的值以及普通帖子数据的代码
jQuery(grid).jqGrid('inlineNav', "#pager", { edit: false, add: true, del: false, search: false,
//add the extra params to the post call
addParams: {
useDefValues: true,
addRowParams: {
keys: true,
aftersavefunc: reloadGrid,
extraparam: { accNo: getAccNumber, colourName: getColName }
}
},
editParams: {
keys: true,
aftersavefunc: reloadGrid,
extraparam: { accNo: getAccNumber, colourName: getColName }
}
});
此函数获取asp.net文本框的值
//get the value of the account number field
getAccNumber = function () {
return $("#<%= txtAccNo.ClientID %>").val();
};
答案 0 :(得分:0)
您可以使用extraparam
的{{1}}选项:
editRow
附加参数onSelectRow: function (id) {
...
$(this).jqGrid('editRow', id, {
keys: true,
url: "yourServerUrl",
extraparam: {
accountNumber: function () {
return $("#accountNr").val();
}
}
});
....
}
,其输入字段的当前值为id =&#34; accountNr&#34;将另外发送到标准数据。
您可以看到here相应的演示。由于accountNumber
下不存在任何URL,因此会出现错误,但可以在Fiddler,Firebug或IE或Chrome的开发人员工具中轻松验证其他参数http://www.ok-soft-gmbh.com/jqGrid/myServerUrl
是否真的会发送到服务器
对于ASP.NET代码,可能需要使用accountNumber
之类的语法来获取表单的相应输入字段的id。
可以使用jqGrid的备选inlineData选项和定义为方法的属性。这里的想法与"<%=accountNumber.ClientID%>"
中描述的here相同。在the answer中,您会找到一个使用postData
的示例。