2012-04-10 82 views
0

いくつかの条件によっては、セルを読み取り専用/編集可能に切り替えることができます。それはほとんど動作します、私はそれを読み取り専用にすることはできますが、再度編集することはできません。jqGridでセルを読み込み/編集可能にする

grid.setColProp("a", { 
    editoptions: { 
     value: data.opPadrag, 
     dataEvents: [{ 
      type: 'change', 
      fn: function (e) { 
       var selr = grid.jqGrid('getGridParam', 'selrow'); 
       if (someCondition) grid.jqGrid('setCell', selr, 'c', '', 'not-editable-cell'); 
       else 
       // Problem here - how to make it editable. I've tried a few ways, none worked 
       // grid.jqGrid('setCell', selr, 'c', '', 'editable-cell'); 
       // grid.jqGrid('setCell', selr, 'c', '', 'editable'); 
       // grid.jqGrid('setCell', selr, 'c', '', ''); 
      } 
     }] 
    } 
}); 

答えて

1

セルからクラスを除去するための機能で構築されたまったく、あなたはこのように手動でこれを行うことができますがありません:

grid.setColProp('a', { editoptions: { value: data.opPadrag, dataEvents: [{ type: 'change', fn: function (e) { 
    var selr = grid.jqGrid('getGridParam', 'selrow'); 
    if (someCondition) { 
     grid.jqGrid('setCell', selr, 'c', '', 'not-editable-cell'); 
    } else { 
     var colModel = grid.jqGrid('getGridParam', 'colModel'); 
     for (var iCol = 0; iCol < colModel.length; iCol++) { 
      if (colModel[iCol].name === 'c') { 
       var row = grid[0].rows.namedItem(selr); 
       var cell = row.cells[iCol]; 
       $(cell).removeClass('not-editable-cell'); 
       break;    
      } 
     } 
    } 
} }] } }); 
+0

小タイピングエラー: 'ICOLは[ICOL] .name'あるべきコードのjQueryの一行を使用

'colModel [iCol] .name'です。 – Oleg

+0

固定、ありがとうございます。 – tpeczek

+0

あなたは大歓迎です! – Oleg

0

あなたは、より効率のこのアクションを実行することができます。

$("#<GridId> tr[id='<RowId>'] td[aria-describedby='<GridId>_<ColumnName>']").removeClass('not-editable-cell'); 

例:

$("#maingrid tr[id='1'] td[aria-describedby='maingrid_column1']").removeClass('not-editable-cell'); 

おかげで、

Gavriel

関連する問題