1

私のjqGridには、2列の行があります。ドロップダウン リストを含む各列。インライン編集を使用しています。最初のドロップダウン リストの変更時に、選択した値を 2 番目のドロップダウン リストに設定して無効にしたいと考えています。最初のドロップダウンの 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?
             }
         }]
     }
}

2 番目のドロップダウンの colModel は次のとおりです。

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

2 に答える 2

1

わかった。最後に、これを理解することができました。jqGrid セルから選択ドロップダウンを取得する 1 つの方法は、次のとおりです。

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

私は2つのことを逃しました。[0] を追加し、ドットで id をクエリするときに二重バックスラッシュを使用します。これは、同じ問題に直面している人のための完全な解決策です。2 番目の 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

2 番目の選択の値を設定するには、jqGrid のsetCellメソッド ( jqGrid wiki メソッド) を使用する必要があります。

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

他の列の値の変更に基づいて列を無効にすることに成功しました。詳細については、この質問を参照してください。

于 2013-05-22T21:20:59.473 に答える