У меня есть сетка с подсетой, редактируемая как 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>
После нажатия где-то еще, он отлично работает, так как правильное значение уже установлено в списке.
Как я могу получить то, что он был выбран?
Спасибо!