如何将null值绑定到包含所有可编辑格式行的jqgrid



我在asp.net应用程序中使用jqgrid。我在jqgrid的LoadComplete触发器中以可编辑的形式制作所有网格行,如下所示:

 ids = $("#grid").jqGrid('getDataIDs');
                    var l = ids.length;
                    for (var i = 0; i <= l; i++) {
                        $("#grid").jqGrid('editRow', ids[i], true);
}

在其中两列中,我有下拉列表。在这里,基于外部下拉列表的更改,一些行被添加到jqgrid中。

添加后,它们最初包含Null值。

所以,为了在网格中显示空值。我正在添加一个列表项,以显示它们。

问题是,我不应该允许用户再次选择空值。

所以,我只需要下拉列表中的选项一次,那是在做出选择之前。

稍后,它将不可见或不可选择。。

请帮忙。。

更新:

最初,网格不包含行。。

在下拉列表更改时,将刷新网格,并根据下拉列表选择添加新行。

网格数据

for example:     
  col1  col2  col3  col4
  Item1 Null  null  null
  Item2 Null  Null  Null

类似于此:

这里,Col1是不可编辑的,其余的都是可编辑的。

Col2和Col4是下拉

我正在使用将选择选项加载到下拉列表中

 editoptions: {
                    value: { " ": " ", "option1": "option1", "option2": "option2", "option2": "option2", "option3": "option3" },

在这里,我的问题是。。用户不应该能够选择该空选项。

我已将其包含在初始数据绑定中。如果我不包括空选项(")则下拉列表以选项1作为默认显示,但用户尚未选择任何选项。

我不确定我是否理解并纠正你的问题。如果您只需要从下拉列表中删除null""条目,则可以使用dataInit(editoptions的属性)来执行此操作。相应的代码可能是关于以下

dataInit: function (elem) {
    $(elem).find("option[value=""]").remove();
}

也许其他实现可能对您更好。例如,如果当前选择的选项为"",则可以取消选择任何选项。有关详细信息,请参阅答案。无论如何,我认为您应该使用dataInit进行一些更正。

最新更新