【问题标题】:Sending Value of ASP.Net textbox to Jqgrid save event将 ASP.Net 文本框的值发送到 Jqgrid 保存事件
【发布时间】:2012-10-23 15:04:13
【问题描述】:

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

【问题讨论】:

  • 您应该发布更多关于您的实施的信息。例如:您在网格中使用了哪个datatype?你用的是jqGrid的哪种编辑模式?您是在本地还是在服务器上保存网格中的数据(是editurl: 'clientArray'cellsubmit: 'clientArray' 还是其他一些本地编辑)?
  • 奥列格,为问题添加了更多信息

标签: asp.net jqgrid


【解决方案1】:

您可以使用editRowextraparam 选项:

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

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

可以看到here对应的demo。因为http://www.ok-soft-gmbh.com/jqGrid/myServerUrl下不存在URL,所以会报错,但是可以在Fiddler、Firebug或IE或Chrome的开发者工具中轻松验证附加参数accountNumber是否真的会发送到服务器。

对于 ASP.NET 代码,您可能需要使用 "&lt;%=accountNumber.ClientID%&gt;" 之类的语法来获取表单相应输入字段的 ID。

可以使用 jqGrid 的 inlineData 选项,将属性定义为方法。这里的想法与here 描述的postData 相同。在the answer 中,您会找到使用inlineData 的示例。

【讨论】:

  • 我让用户填写网格上的信息,他们通过寻呼机上的保存图标保存它。我将如何在事件中添加数据,我假设这个演示是如果您每次更改单元格时都保存?谢谢
  • @beakersoft:如果您发布您使用的代码会更好。我不确定您是否正确描述了您的工作。你用inlineNav吗?问题是您提出的问题的解决方案取决于您当前实施的许多方面。因此,无需发布 JavaScript 代码,我们就可以花时间。
  • 我已经使用 extraparam 进行了这项工作,并将其放入 inlineNav。我将在我的问题中发布代码
  • @beakersoft:你没有在问题中写下你使用了inlineNav使用内联编辑有很多不同的方法:直接调用editRow,使用formatter: "actions",使用inlineNav。在许多情况下,上述所有情况的解决方案都完全不同。因此,您应该始终准确指定您选择的方式或只是发布代码。我不确定您使用了 哪一种 方法。所以我在关于inlineData 的回答的最后一部分给你写了信。这种方式适用于所有类型的内联编辑
猜你喜欢
  • 2013-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-01
相关资源
最近更新 更多