Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置JqGrid';从JSON数据中删除colName和colModel_Json_Jqgrid - Fatal编程技术网

设置JqGrid';从JSON数据中删除colName和colModel

设置JqGrid';从JSON数据中删除colName和colModel,json,jqgrid,Json,Jqgrid,我试图在服务器上生成列名列表和列模型,并将其提供给JqGrid。 我已经成功地生成了JSON,并通过XHR将其传递给客户端,没有任何抱怨。但是,网格本身并没有显示出来。我看到网格的一列,网格的折叠/展开按钮位于顶部 下面是javascript调用: var col_names = []; var col_model = []; ... ... jQuery(document).ready(function() { //XHR to get col_names and col_model

我试图在服务器上生成列名列表和列模型,并将其提供给JqGrid。 我已经成功地生成了JSON,并通过XHR将其传递给客户端,没有任何抱怨。但是,网格本身并没有显示出来。我看到网格的一列,网格的折叠/展开按钮位于顶部

下面是javascript调用:

var col_names = [];
var col_model = [];
...
...

jQuery(document).ready(function() {
  //XHR to get col_names and col_model
  $.ajax({url: 'http://localhost:8080/metadata',
          success: function(data) {
            col_names = data.names;
            col_model = data.model;
          }
  });
jQuery("#list").jqGrid({
    url:'http://localhost:8080:/data?level=0',
    datatype: 'json',
    mtype: 'GET',
    colNames: col_names,
    colModel: col_model,
    ...
    ...
以下是JSON:

{
    "model": [{"index": "pid", "name": "pid"},
              {"index": "p1", "name": "p1"},
              {"index": "p2", "name": "p2"}],
    "names": ["PID", "P1", "P2"]
}
如果我硬编码colModel,网格就会显示出来。 顺便说一句,在响应头中,内容类型设置为“application/json”


TIA在您发布的代码中,您正在AJAX调用完成之前初始化jqGrid:

jQuery(document).ready(function() {
  //XHR to get col_names and col_model
  $.ajax({url: 'http://localhost:8080/metadata',
          success: function(data) {
            col_names = data.names;
            col_model = data.model;
         }
 });
jQuery("#list").jqGrid({
...
您需要在
success
函数中重新定位jqGrid代码,或者在调用
$.ajax
时将
async
选项设置为false


当AJAX调用挂起时,您可以在页面上显示一个微调器或诸如此类的内容,以让用户保持占用状态。

您可以分享一下如何从服务器获取ColModel吗?我取了科尔曼的名字