jqGrid不显示JSON数据

2024-03-12

我希望将 jqGrid 用于我当前正在开发的 Web 项目。问题是,我似乎无法让网格显示 JSON 数据。这是网格的初始化代码:

$.fn.loadjqgrid = function(httpposturl){
        $(this).jqGrid({
            url: httpposturl,
            datatype: "json",
            mtype: "GET",
            colNames: ["Video Title", "Description", "Date Taken", "Date Uploaded"],
            colModel: [
               {name:"videoTitle", index:"videoTitle", width:150},
               {name:"videoDescription", index:"videoDescription", width:200},
               {name:"dateTaken", index:"dateTaken", width:150, sortable:true},
               {name:"dateUploaded", index:"dateUploaded", width:150, sortable:true}
            ],
            pager: "#gridpager",
            rowNum: 10,
            viewrecords: true,
            caption: "Video Grid"
        });
    };

Java servlet 返回的 JSON:

[{"dateTaken":"Wed Feb 16 00:00:00 UTC 2011","videoDescription":"This is a test","videoTitle":"Test Video","dateUploaded":""}]

JSON 的格式化方式或网格的初始化方式是否有问题?谢谢您的帮助!


为了获得服务器端数据过滤、分页和排序的优势,jqGrid 可以更好地处理包含有关当前页面的附加信息的数据(请参阅here http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data)。如果您无法更改生成 JSON 数据的服务器端,您可以添加loadonce:true参数,然后数据的过滤、分页和排序将在本地完成。但首先 jqGrid 应该能够读取您的数据。

您可以使用jsonReader我建议的here https://stackoverflow.com/questions/2835957/jquery-with-asp-net-mvc-calling-ajax-enabled-web-service/2836817#2836817(该方法也有记录here http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#jsonreader_as_function):

jsonReader: {
    repeatitems: false,
    root: function (obj) { return obj; },
    page: function (obj) { return 1; },
    total: function (obj) { return 1; },
    records: function (obj) { return obj.length; }
}

内部函数的使用方式jsonReader非常灵活,您几乎可以通过 jqGrid 读取任何 JSON 数据。

修改后您的网格将显示数据:参见here http://www.ok-soft-gmbh.com/jqGrid/Tim.htm.

留下一个小问题。 jqGrid需要有唯一身份对于每个网格行。 id 将被分配给每个<tr>元素。目前,整数 ID“1”、“2”... 将用作 ID,因为在您的 JSON 数据中找不到 ID。如果网格的一列可以解释为您可以包含在中的 idjsonReader对应的属性,例如id:"videoTitle"。如果您的数据确实没有 id,并且您计划将多个数据作为页面的一个网格,则可能会收到 id 冲突。案例使用情况id作为两个网格具有不同实现的函数可以解决该问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jqGrid不显示JSON数据 的相关文章

随机推荐