0
我有一個帶有子網格的網格,可編輯爲cellEdit。在這個子網格中,我有一列是一個下拉列表。如果列表的選定值爲「LIBRE」,我想要做的是立即禁用網格中的其他兩個單元格(僅在同一列中)。 我做如下(次網格定義部分):根據另一個單元格中的值禁用單元格(jqgrid)
afterEditCell:function(id, cellname, value, iRow, iCol){
var grid=jQuery("#" + subgrid_table_idHilos);
var ret = jQuery("#" + subgrid_table_idHilos).jqGrid('getRowData',id);
if(ret.nombreestadoe1=="LIBRE"){
grid.jqGrid('setCell',id,'conectadoe1','','not-editable-cell');
grid.jqGrid('setCell',id,'puertohiloe1','','not-editable-cell');
}
else if(ret.nombreestadoe1!="LIBRE"){
var iCol = getColumnIndexByName(grid,"conectadoe1"),
tr = grid[0].rows.namedItem(id),
td = tr.cells[iCol];
$(td).removeClass("not-editable-cell");
iCol = getColumnIndexByName(grid,"puertohiloe1"),
tr = grid[0].rows.namedItem(id),
td = tr.cells[iCol];
$(td).removeClass("not-editable-cell");
}}
的事情是:它是工作,但只有點擊不同的細胞兩次後,這是因爲選擇的值改變之後,ret.nombreestadoe1的內容是:
<select role="select" id="10_nombreestadoe1" name="nombreestadoe1"><option style="background-color: green;" value="1" role="option">LIBRE</option><option style="background-color: red;" value="2" role="option">OCUPADO</option><option style="background-color: purple;" value="3" role="option">ROTO</option><option style="background-color: grey;" value="0" role="option">SIN DEFINIR</option></select>
點擊其他地方後,它工作正常,因爲正確的價值在列表中已設置。
我怎樣才能得到剛剛選擇的內容?
謝謝!