【问题标题】:Catching a select change event from within a JqGrid从 JqGrid 中捕获选择更改事件
【发布时间】:2011-03-28 16:15:36
【问题描述】:

我正在开发一个使用 JQGrid 的 MVC 项目。在我的一个网格中,我有一个子网格。在子网格中,其中一列是下拉列表。我想捕捉这个下拉列表的更改事件,以便我可以使用所选项目设置下一个单元格的默认值。

我使用 Firebug 查看了<select> html 的 Id,并尝试了以下代码,但没有触发警报:

$('#MySelectId').change(function() {
        alert('Test');
    });

这种方法在使用模态编辑表单时有效,但我使用的是内联编辑,并且希望在用户更改网格上的下拉列表时捕获事件。

【问题讨论】:

    标签: jquery jqgrid asp.net-mvc-2 jquery-events


    【解决方案1】:

    您可以将dataEvents 属性定义为editoptions 的一部分。在dataEvents 中,您定义了自定义的“更改”事件句柄,jqGrid 将在相应的单元格在编辑模式下初始化后进行绑定。请参阅 herehere 示例。

    【讨论】:

    • 再次感谢 Oleg,你的明星!
    • 我正在尝试设置下拉列表旁边的文本框的值,但我似乎无法处理它。我试过用..
    • var row = $(e.target).closest('tr.jqgrow'); var rowId = row.attr('id'); $("text#" + rowId + "_MyColumnName", row[0]).html(myValue);
    • 对不起,我没有好好研究这个问题,你已经回答了另一个用户的这个问题。我将最后一行更改为 '$("#" + rowId + "_MyColumnName").val(myValue);'
    • @Joe:对不起,我不明白代码的上下文。您是否使用表单编辑并且想要根据下拉框中的值myValue 更改“MyColumnName”列的表单的文本编辑字段?在这种情况下,编辑表单的 id 将具有与列名相同名称的 id,您可以使用$("#MyColumnName").val(myValue)。因为我不完全理解您的代码示例(尤其是上下文),所以我不确定这是您需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 2011-08-30
    • 2013-07-18
    • 2011-09-30
    • 2017-05-17
    相关资源
    最近更新 更多