将ASP.Net文本框的值发送到Jqgrid保存事件

时间:2012-10-23 15:04:14

标签: asp.net jqgrid

我有一个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();
            };

1 个答案:

答案 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的示例。