jqGrid,如何从查询中填充选择列表

use*_*819 6 jqgrid

我在我的coldfusion项目中有一个基本的jqGrid工作.我在jqGrid中的一个字段是一个组合框.目前,editoption值是硬编码的,如下所示.

colModel :
[
  {
   name:'seqnum',index:'seqnum', width:100,resizable:true,   
   align:"left",sorttype:"text",editable:true,edittype:"select",editoptions:   
   { value:"1:one;2:two"},editrules:{required:true}
  }
]
Run Code Online (Sandbox Code Playgroud)

我试图找出一种方法来填充查询/网址的下拉列表.

任何帮助将不胜感激.

提前致谢

san*_*rnc 6

创建一个使用json查询url的函数.此函数应返回格式为"1:one; 2:two"的字符串.

例如:

    colModel :
    [
      {
       name:'seqnum',index:'seqnum', width:100,resizable:true,   
       align:"left",sorttype:"text",editable:true,edittype:"select",editoptions:
       { value:getSequenceNumbers()},editrules:{required:true}
      }
    ]

    function getSequenceNumbers(){
        $.getJSON("yourUrl", null, function(data) {
            if (data != null) {
                 //construct string.  
                 //(or the server could return a string directly)
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

我想你也可以将函数内联,但我认为它会更难阅读.


JT.*_*JT. 6

$ .getJSON/getSequenceNumbers()答案不起作用.无法从回调中返回数据作为getSequenceNumbers()的返回值,因为回调是异步的.您需要使用Martin建议的dataURL方法或在$ .getJSON回调中设置jqGrid.

$(document).ready(function() {
 $.getJSON("GetURL", function(data) {
  setupGrid(data);
 });
});

function setupGrid(data) {
...
    colModel :
    [
      {
       name:'seqnum',index:'seqnum', width:100,resizable:true,   
       align:"left",sorttype:"text",editable:true,edittype:"select",editoptions:
       { value:data},editrules:{required:true}
      }
    ]

...
}
Run Code Online (Sandbox Code Playgroud)


小智 5

使用dataUrl...(请参阅此处的wiki).

目前dataUrl生成一个GET,但如果从Github中提取代码,则GET可以更改为POST而没有明显的副作用.