我在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
进行一些更正。