1

在我的 jqGrid 中,我有一排有两列。每列包含一个下拉列表。我正在使用内联编辑。在更改第一个下拉列表时,我想在第二个下拉列表中设置一个选定的值并将其禁用。这是第一个下拉菜单的 colModel

{
     name:'pdInstanceType.id', 
     edittype:'select', formatter:'select', editable:true, 
     editoptions:{
         value:"1:Test1;2:Test2",
         dataEvents: [{ 
             type: 'change', fn: function(e) {
                 var valueToSet = 3;
                 var row = jQuery(e.target).closest('tr.jqgrow');
                 var rowId = row.attr('id');
                 var secondSelect = jQuery('#' + rowId + '_stdCellLibrary.id');
                 secondSelect.val(valueToSet);//this is not working
                 //how to disable the secondSelect?
             }
         }]
     }
}

这是第二个下拉菜单的 colModel

{
    name:'stdCellLibrary.id', 
    edittype:'select', formatter:'select', editable:true, 
    editoptions:{
        value:"3:Test3;4:Test4"
    }
}
4

2 回答 2

1

好的。最后,能够弄清楚这一点。从 jqGrid 单元格中检索选择下拉列表的一种方法是

var secondSelect = jQuery('#' + rowId + '_stdCellLibrary\\.id')[0];

我错过了两件事。使用点查询 id 时添加 [0] 并使用双反斜杠。这是针对面临相同问题的人的完整解决方案。第二个 colModel 的定义保持不变。这是第一个 colModel

{
    name:'pdInstanceType.id', 
    edittype:'select', formatter:'select', editable:true, 
    editoptions:{
        value:"1:Test1;2:Test2",
        dataEvents: [{ 
            type: 'change', fn: function(e) {
                var valueToSet = 3;
                var row = jQuery(e.target).closest('tr.jqgrow');
                var rowId = row.attr('id');
                var secondSelect = jQuery('#' + rowId + '_stdCellLibrary\\.id')[0];
                jQuery(secondSelect).val(valueToSet);
                //how to disable the secondSelect
                jQuery(secondSelect).attr("disabled", true);
            }
        }]
    }
 }
于 2013-05-23T01:12:03.363 回答
0

要设置第二个选择的值,您应该使用 jqGrid 的setCell方法(jqGrid wiki methods)。

var rowId = $("#nameOfGrid").jqGrid('getGridParam', 'selrow');
$("#nameOfGrid").jqGrid('setCell', rowId, 'stdCellLibrary.id', valueToSet);

我根据其他列中的值更改禁用列的成功有限。有关更多信息,请参阅此问题

于 2013-05-22T21:20:59.473 回答