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>
点击其他地方后,它工作正常,因为正确的价值在列表中已设置。
我怎样才能得到刚刚选择的内容?
谢谢!