在我的jqGrid中,我有一行有两列。每列包含一个下拉列表。我正在使用内联编辑。在更改第一个下拉列表时,我想在第二个下拉列表中设置一个选定的值并禁用它。这是第一个下拉列表的colModel
{
name:'pdInstanceType.id',
edittype:'select', formatter:'select', editable:true,
editoptions:{
value:"1:Test1;2:Test2",
dataEvents: [{
type: 'change', fn: function(e) {
var valueToSet = 3;
var row = jQuery(e.target).closest('tr.jqgrow');
var rowId = row.attr('id');
var secondSelect = jQuery('#' + rowId + '_stdCellLibrary.id');
secondSelect.val(valueToSet);//this is not working
//how to disable the secondSelect?
}
}]
}
}
这是第二次下拉列表的colModel
{
name:'stdCellLibrary.id',
edittype:'select', formatter:'select', editable:true,
editoptions:{
value:"3:Test3;4:Test4"
}
}
答案 0 :(得分:1)
行。最后,能够弄清楚这一点。从jqGrid单元格中检索选择下拉列表的一种方法是
var secondSelect = jQuery('#' + rowId + '_stdCellLibrary\\.id')[0];
我错过了两件事。使用dot查询id时添加[0]并使用双反斜杠。这是面对同样问题的人的完整解决方案。第二个colModel的定义保持不变。这是第一个colModel
{
name:'pdInstanceType.id',
edittype:'select', formatter:'select', editable:true,
editoptions:{
value:"1:Test1;2:Test2",
dataEvents: [{
type: 'change', fn: function(e) {
var valueToSet = 3;
var row = jQuery(e.target).closest('tr.jqgrow');
var rowId = row.attr('id');
var secondSelect = jQuery('#' + rowId + '_stdCellLibrary\\.id')[0];
jQuery(secondSelect).val(valueToSet);
//how to disable the secondSelect
jQuery(secondSelect).attr("disabled", true);
}
}]
}
}
答案 1 :(得分:0)
要设置第二个选择的值,您应该使用jqGrid的setCell
方法(jqGrid wiki methods)。
var rowId = $("#nameOfGrid").jqGrid('getGridParam', 'selrow');
$("#nameOfGrid").jqGrid('setCell', rowId, 'stdCellLibrary.id', valueToSet);
我根据其他列中的值更改禁用列的成功有限。有关详细信息,请参阅this question。