Jquery jqgrid addJSONData不';行不通

Jquery jqgrid addJSONData不';行不通,jquery,jqgrid,Jquery,Jqgrid,我在jqGrid上工作,返回的json是 {"total":1,"page":1,"records":2,"rows":[{"projectId":"1022","name":"john"}]} 然后在我调用的函数中 var jsongrid = eval("("+data+")"); var thegrid = jQuery("#projectList")[0]; thegrid.addJSONData(

我在jqGrid上工作,返回的json是

{"total":1,"page":1,"records":2,"rows":[{"projectId":"1022","name":"john"}]}
然后在我调用的函数中

 var jsongrid = eval("("+data+")");                  
 var thegrid = jQuery("#projectList")[0];                       
 thegrid.addJSONData(jsongrid);
但它给了我一个错误:对象为null或未定义。不知道为什么。我没有使用json阅读器


顺便说一句,你知道如何使用set方法来设置“total”、“page”、“records”?

我想在创建与
jQuery(“projectList”)相关的网格之前,你应该尝试调用
addJSONData
方法

实际上总是不需要使用
addJSONData
(参见我关于这个主题的第一篇文章中的一篇)。同样,你也不应该使用邪恶的
eval
方法。一个人使用或代替

我想您应该使用
数据类型:“json”
来解决您的问题。您应该发布更多代码,向您展示如何在您的案例中使用其他jqGrid选项

已更新:从您之前的问题来看,您似乎只需单击“搜索”按钮,即可从表单向服务器发送附加数据。在这种情况下,我建议将代码修改为以下内容

var $grid = $("#projectList");

$grid.jqGrid({
    url: 'user595234.json',
    datatype: "json",
    serializeGridData: function (data) {
        return $.param(data) + '&' + $("#project_search_form").serialize();
    },
    jsonReader: {id: "projectId", repeatitems: false},
    colNames: ['ID', 'Name'],
    colModel: [
        {name: 'projectId', width: 255},
        {name: 'name', width: 255}
    ],
    rowNum: 10,
    rowList: [10,20,30],
    pager: '#projectPager',
    sortname: 'projectId',
    viewrecords: true,
    sortorder: "desc",
    caption: "Simple data manipulation",
    height: "auto"
}).jqGrid("navGrid", "#projectPager", {edit: false, add: false, del: false});

$("#search").click(function () {
    $grid.trigger("reloadGrid", [{page: 1}]);
});
在本文中,我仅从用法示例中获取表单,并对其进行了一些修改。它显示您需要的数据

此外,正如您可以轻松验证Fiddler或Firebug一样,URL将附加以下附加参数

...?_search=false&nd=1336057299806&rows=10&page=1&sidx=projectId&sord=desc&a=1&b=2&c=3&d=4&e=7&f=8 
标准参数

_search=false&nd=1336057299806&rows=10&page=1&sidx=projectId&sord=desc
将附加表单中的参数

a=1&b=2&c=3&d=4&e=7&f=8
在某些情况下,可以选择使用。它允许将数据序列化为另一种格式(如JSON)或将数据转换为另一种格式(请参阅),使用该格式可以轻松地与标准jqGrid参数合并。

更多详细信息见此处