javascript - jqgrid setColProp 不起作用

标签 javascript jquery jqgrid

我正在使用 setColProp 将值动态加载到 select 编辑类型中。

每当我调用时,我都会成功加载值:

loadComplete: function() {
                $("#profile_table").setColProp('contract_num', { editoptions: { value: contract_list} });
            },

但是它只在这里有效,而且只能一次。如果我更改 contract_list 的值并尝试通过调用更新 jqgrid

$("#profile_table").setColProp('contract_num', { editoptions: { value: contract_list} });

再次从任何地方(通过单击按钮,通过提交后,甚至重新加载表格)它什么也不做。

我是不是做错了什么?

编辑: 这是我正在尝试做的事情的更好解释。

我有一个 ID 为 #profile_table 的 jqGrid 表。

这是 jqGrid 代码中 colModel 的一部分:

colModel:[
                {name:'contract_num',index:'contract_num', editable: true, hidden: false, width:30, edittype: "select", editrules: {required: true}},   
]

最初,编辑/添加表单中的 contract_num 编辑字段的 select 框中没有任何值。我从创建表之前创建的名为 contract_list 的 JavaScript 变量加载初始值。我最初使用以下方法加载这些值:

loadComplete: function() {
                $("#profile_table").setColProp('contract_num', { editoptions: { value: contract_list} });
            },

这工作正常,但是只要用户更改显示此表的页面上的其他内容,contract_list 的值就可能会更改。因此,我尝试动态更新此表的编辑/添加表单内的 contract_num 字段的 select 框中的选项。我成功更改了 contract_list 内部的值,但是我无法将实际的 select 框更新为新值。

我正在尝试通过调用来更新它:

$("#profile_table").setColProp('contract_num', { editoptions: { value: contract_list} });

然后,只要有人更改 contract_list 的值,就会重新加载网格,但表不会更新。

最佳答案

我认为如果您使用recreateForm: true,您的主要问题将会得到解决表单编辑选项(参见 here 使用示例)。我建议您在调用navGrid之前将该设置设置为默认设置(参见here相应的代码)。

此外,根据您在评论中写的信息,我认为您应该更好地使用 dataUrl而不是value editoptions的。因此,jqGrid 可以在创建编辑表单期间直接从服务器加载值列表。有时使用buildSelect很有用。它可以帮助您以 JSON 格式等形式从服务器提供数据并构建 <select><option value="...">...</option>...</select>基于 buildSelect 内的服务器数据的 HTML 片段。此外,可能需要设置 ajaxSelectOptions: { cache: false } jqGrid 选项(请参阅 herehere )或强制重新验证 dataUrl 上的先前服务器响应。关于 HTTP header "Cache-Control: private, max-age=0" (参见herehere)

关于javascript - jqgrid setColProp 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10068647/

相关文章:

javascript - 谷歌驱动器 : How to set criteria on sub-fields in the query parameter?

javascript - 避免 Bootstrap 导航栏中的下拉菜单崩溃

jquery - jqgrid 填充数据,但给 tr 一个 ID null

jquery - 以编程方式对 jqGrid 进行排序

javascript - 差异时区浏览器和 Java

javascript - 使 angular2-cookie 安全并加密

Jquery 如果我的 div 是空的

javascript - 使用 jquery 获取 div 的下一个类

jquery - 如何在 jqGrid 中的 ""分隔符上的单元格中强制换行?

javascript - keypress() 函数在现实生活中有何应用