我使用jqGrid创建了一个表。在那我有一个comboBox。我想要组合框的值,以便它不会在previoud行中使用。
但是,一旦显示我的第一行,我就无法在第二行更改comboBoc的值。
例如:在我的组合框中,有三个值.. one
,two
,three
。我在第一行中选择了值“two”。然后,第二个组合框必须有两个值:one
和three
。
我尝试过以下代码:
$("#listData").setColProp('denomination',
{editoptions:{value:getDenominationList('addOperation').toString()}});
这里..
getDenominationList('addOperation')
将返回字符串"1:one;3:three"
但这不起作用。
请给我一些想法,它的敦促
提前完成。
答案 0 :(得分:0)
我希望我理解您的问题是正确的,并且您希望每次更改value
editoptions
参数取决于当前行ID或其他网格包含的内容。您可以在自定义dataInit
事件处理程序中执行此操作(请参阅editoptions):
dataInit: function (elem) {
var v = $(elem).val();
var rowId = $(e.target).closest('tr.jqgrow').attr('id');
var newValue = getDenominationList('addOperation').toString();
$("#listData").setColProp('denomination', { editoptions: { value:newValue} });
}
您问题中使用的函数getDenominationList
没有您可能需要的rowid
参数。为了简化它,我在行上方的代码中包含了如何获得行的id
。
我建议你查看我最近回答的another answer。它显示了inline editing情况下value
属性的初始值如何重置。你使用form editing你应该在onClose事件处理程序中执行此操作。此外,在form editing的情况下,您必须使用recreateForm:true,这将强制dataInit
事件处理程序不会被调用一次,而是在每行编辑。