jqGrid中特定行下拉的变化值

时间:2010-12-18 09:21:56

标签: jqgrid

我使用jqGrid创建了一个表。在那我有一个comboBox。我想要组合框的值,以便它不会在previoud行中使用。

但是,一旦显示我的第一行,我就无法在第二行更改comboBoc的值。

例如:在我的组合框中,有三个值.. onetwothree。我在第一行中选择了值“two”。然后,第二个组合框必须有两个值:onethree

我尝试过以下代码:

$("#listData").setColProp('denomination',
    {editoptions:{value:getDenominationList('addOperation').toString()}});

这里..
getDenominationList('addOperation')将返回字符串"1:one;3:three"

但这不起作用。
请给我一些想法,它的敦促 提前完成。

1 个答案:

答案 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事件处理程序不会被调用一次,而是在每行编辑。