【问题标题】:Unable to load jqGrid using json in struts2无法在struts2中使用json加载jqGrid
【发布时间】:2026-02-23 21:05:03
【问题描述】:

这是我使用 jQuery 的 Jsp 页面

   jQuery("#jqGrid01").jqGrid({

            url: "JqGridDemoJson.action",
            datatype:"json",
            height: 200,
            rowNum: 10,
            rowList: [10,20,30],

 colNames:['Inv No','Name'],
  colModel:[
             {name:'id',index:'id', editable: true,sorttype:"int",search:true},
             {name:'name',index:'name', editable: true,width:30}
            ],
            pager: "#jqGridPager01",
            viewrecords: true,
            add: true,
            edit: true,
            addtext: 'Add',
            edittext: 'Edit',
            caption: "Data",
            hidegrid:false
        });

这是我的动作检索列表:

     {"JQgridAction":"success",
         "mitnolist":
         [{"id":1,"name":"MIT\/1009\/SUF-"},
         {"id":2,"name":"MIT\/1010\/SUF-"},
         {"id":5,"name":"MIT\/1011\/SUF-Adma Site"},
     ]}

这个列表无法加载到上面的 JQgrid 上。

【问题讨论】:

  • 您为什么回滚到格式错误、描述错误的问题?
  • @AndreaLigios 这个 OP 获得了清理徽章!

标签: javascript jquery json struts2 jqgrid


【解决方案1】:

您的 json 是一个对象,而 jqgrid 使用 [{}, {}, {},...] 多个对象的数组,因此您必须像此示例一样返回您的 json:

         [{"id":1,"name":"MIT\/1009\/SUF-"},
         {"id":2,"name":"MIT\/1010\/SUF-"},
         {"id":5,"name":"MIT\/1011\/SUF-Adma Site"}]

或者还有另一种方式,你可以编写一个 js ajax 函数并将所需的数据传递给你的 jqgrid:

$.ajax({
   url: "JqGridDemoJson.action",
   dataType: 'json',
   type: 'post',
   success: function(data){
      makeGrid(data.mitnolist); // as this seems to be populated in grid
   }
});

现在在你的 jqgrid 中你可以这样做:

function makeGrid(gData){ // pass in args
   $("#grid").jqGrid({
     data: gData, //  your data to populate in grid
     datatype: "local", // now change the datatype to local
      .....
  });
}

A small working example.

【讨论】:

  • 如何将对象更改为列表。我尝试了很多但我没有得到。
  • @user3065905 如果这有助于您理解它,请查看更新和小提琴链接。