Drop down menu 根据另一个单元格中的值禁用一个单元格(jqgrid)
我有一个带有子网格的网格,可编辑为cellEdit。在这个子网格中,我有一列是dropdownlist。我要做的是,如果列表的选定值为“LIBRE”,则立即禁用网格中的其他两个单元格(仅在同一列中)。 我的工作如下(在子网格定义部分): 问题是:它正在工作,但只是在不同单元格中单击两次之后,这是因为在选定值更改之后,ret.nombreestadoe1的内容是:Drop down menu 根据另一个单元格中的值禁用一个单元格(jqgrid),drop-down-menu,jqgrid,Drop Down Menu,Jqgrid,我有一个带有子网格的网格,可编辑为cellEdit。在这个子网格中,我有一列是dropdownlist。我要做的是,如果列表的选定值为“LIBRE”,则立即禁用网格中的其他两个单元格(仅在同一列中)。 我的工作如下(在子网格定义部分): 问题是:它正在工作,但只是在不同单元格中单击两次之后,这是因为在选定值更改之后,ret.nombreestadoe1的内容是: <select role="select" id="10_nombreestadoe1" name="nombreestadoe
<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>
LIBREOCUPADOROTOSIN定义
单击其他位置后,它可以正常工作,因为列表中已经设置了正确的值
我怎样才能得到刚刚选中的内容
谢谢 我找到了该做的事。首先,我在第一个列表所在列的dataevents中的“change”函数中执行此操作。通过这种方式,我立即获得所选的值,检查它,并根据该值使用相同的代码禁用单元格。代码如下:
{name:"nombreestadoe1",stype:'select',searchoptions: {dataUrl:'json/estadosHilos.jsp',searchhidden:true},editable:true,edittype:'select',editoptions: {dataUrl:'json/estadosHilos.jsp',
dataEvents: [
{ type: 'change', fn: function(e) {
var grid=jQuery("#" + subgrid_table_idHilos);
var id=grid.jqGrid('getGridParam', 'selrow');
switch (e.currentTarget.selectedIndex){
case 0:
color="green";
grid.jqGrid('setCell',id,'conectadoe1','','not-editable-cell');
grid.jqGrid('setCell',id,'puertohiloe1','','not-editable-cell');
break;
case 1:
color="red";
break;
case 2:
color="purple";
break;
case 3:
color="grey";
break;
default:
color="white";
break;
}
if(color!="green"){
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");
}
e.currentTarget.parentElement.style.backgroundColor=color;
}},
]},index:"nombreestadoe1",width:70,hidden:false
},
{name:"nombreestadoe1",stype:'select',searchoptions: {dataUrl:'json/estadosHilos.jsp',searchhidden:true},editable:true,edittype:'select',editoptions: {dataUrl:'json/estadosHilos.jsp',
dataEvents: [
{ type: 'change', fn: function(e) {
var grid=jQuery("#" + subgrid_table_idHilos);
var id=grid.jqGrid('getGridParam', 'selrow');
switch (e.currentTarget.selectedIndex){
case 0:
color="green";
grid.jqGrid('setCell',id,'conectadoe1','','not-editable-cell');
grid.jqGrid('setCell',id,'puertohiloe1','','not-editable-cell');
break;
case 1:
color="red";
break;
case 2:
color="purple";
break;
case 3:
color="grey";
break;
default:
color="white";
break;
}
if(color!="green"){
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");
}
e.currentTarget.parentElement.style.backgroundColor=color;
}},
]},index:"nombreestadoe1",width:70,hidden:false
},