【问题标题】:JQGrid Change Value Of Cell While Changing Another CellJQGrid在更改另一个单元格时更改单元格的值
【发布时间】:2015-11-29 15:35:24
【问题描述】:

我有jqgridinline editing mode。我想要完成的是在更改单元格值时,也要更改另一个单元格值。

我现在拥有的是:

ondblClickRow: function (id) {
    var selR = $(this).getRowData(id);

    $("#" + $(selR.Inflow).attr("id")).keypress(function () {              
      $(obj.grid).jqGrid("setCell", id, "Inflow", "123321");
 });
}

通过此尝试更改单元格值,但在调用 setCell 后禁用编辑模式。我想更改它,但要保持编辑模式。有什么想法吗?

【问题讨论】:

    标签: javascript jqgrid


    【解决方案1】:

    我建议您定义第一列的editoptionsdataEvents 属性。您可以绑定您在dataEvents 内部定义的change 事件处理程序。它允许您监视第一列的变化。要访问change 事件处理程序中的第二列,您可以使用jQuery.val 方法,其中使用id 选择器。您只需要知道内联编辑中所有字段的 id 都是基于带有下划线 ("_") 的 rowid(外部 <tr> 元素的 id)和列上的名称构建的。 the answer 的“更新 3”部分提供了在更常见的情况下进行更改的演示。要从Event 对象e 中获取rowid,您可以使用$(e.target).closest("tr.jqgrow").attr("id")

    【讨论】:

    • 好的,我试过了。示例和我的案例之间的区别在于我使用输入元素类型文本。更改此元素内 html 的值后,它看起来像这样 值在这里 尽管屏幕上的值在同一行上保持不变。我错过了什么吗?
    • @TheChampp:我在回答中写道,您应该只使用jQuery.val 而不是jQuery.html。例如$("#" + rowid + "_Inflow").val("new Value"),其中var rowid = $(e.target).closest("tr.jqgrow").attr("id");