0

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

1 回答 1

0

您可以使用以下extraparam选项editRow

onSelectRow: function (id) {
    ...
    $(this).jqGrid('editRow', id, {
        keys: true,
        url: "yourServerUrl",
        extraparam: {
            accountNumber: function () {
                return $("#accountNr").val();
            }
        }
    });
    ....
}

来自 id="accountNr" 的输入字段的当前值的附加参数accountNumber将另外发送到标准数据。

你可以在这里看到相应的演示。因为没有 URL 存在http://www.ok-soft-gmbh.com/jqGrid/myServerUrl会出错,但是可以在 Fiddler、Firebug 或 IE 或 Chrome 的开发者工具中轻松验证附加参数accountNumber是否真的会发送到服务器。

在 ASP.NET 代码的情况下,您可能需要使用诸如"<%=accountNumber.ClientID%>"获取表单相应输入字段的 id 之类的语法。

也可以使用jqGrid 的inlineData选项,其中属性定义为方法。这里的想法与这里描述的相同postData。在答案中,您会找到一个inlineData使用的示例。

于 2012-10-23T16:52:16.507 回答