2017-11-25 218 views
2

我正在开发codeigniter项目。我试图在jqgrid中显示来自json和jquery的一些数据。 Jqgrid显示除数据以外的所有内容。没有错误或例外。Jqgrid不显示json的数据

$(document).ready(function(){ 

    $("#company").click(function(){ 

     $("#ortable").hide(); 
     $("#grid").show(); 

     var url = "http://www.***.com"; 
     $.post(url,{},function (response) { 
      var rows = JSON.parse(response); 

      $.each(rows,function (key,row) { 
       var mydata = row; 
       console.log(mydata); //This is for checking data 
      // Configuration for jqGrid Example 1 
       $("#table_list_1").jqGrid({ 
        datastr: mydata, 
        datatype: "json", 
        autoheight: true, 
        width: 320, 
        shrinkToFit: true, 
        rowNum: 5, 
        rowList: [5, 10, 15], 
        colNames: ['Id', 'Code', 'Name'], 
        colModel: [ 
         {name: 'Id', index: 'Id', width: 30}, 
         {name: 'Code', index: 'Code', width: 50}, 
         {name: 'Name', index: 'Name', width: 50, sortable: false} 
        ], 
        pager: "#pager_list_1", 
        viewrecords: true, 
        caption: "Example jqGrid 1", 
        gridview: true, 
        autoencode: true, 
        hidegrid: false, 
        jsonReader: { 
         repeatitems: false, 
         id: "Id", 
         root: function (obj) { return obj; }, 
         page: function (obj) { return 1; }, 
         total: function (obj) { return 1; }, 
         records: function (obj) { return obj.length; } 
        } 

       }); 

      // Add responsive to jqGrid 
       $(window).bind('resize', function() { 
        var width = $('.jqGrid_wrapper').width(); 
        $('#table_list_1').setGridWidth(width); 
       }); 
      }) 
     }); 

    }); 

    $("#group").click(function(){ 

     $("#grid").hide(); 
     $("#ortable").show(); 
    }) 

    $("#menu").click(function(){ 
     $("#myModal").modal("show"); 

    }); 
}); 

有了这个代码工作得很好:

var mydata = [ 
    {Id: "1", Code: "test", Name: "note" } , 
    {Id: "2", Code: "test2", Name: "note2" }]; 

但不是这样的:JSON:

[{"Id":1,"Code":"ASC","Name":"Aslan \u00c7imento","Address1":"Konya","Address2":" ","City":"Konya","Town":" ","PostCode":"123","Tel1":" ","Tel2":"32434","ContactName":"ASC","ContactTel1":"423432","Email":"[email protected]","TaxNumber":"2342423","TaxAdministration":"ddsef","IBAN1":"21321312","IBAN2":" ","TCNo":" ","Kep":"[email protected]","SskNo":"2324234234","Bank1":"safsefes","Bank2":" "},{"Id":2,"Code":"OYT","Name":"Oyta\u015f A.\u015e.","Address1":"Ankara","Address2":"Ankara","City":"Ankara","Town":" ","PostCode":" ","Tel1":"Ankara","Tel2":"32424","ContactName":"oyt","ContactTel1":"345345","Email":"[email protected]","TaxNumber":"43543","TaxAdministration":"5435","IBAN1":"453453454","IBAN2":" ","TCNo":" ","Kep":"[email protected]","SskNo":"345","Bank1":"sadfds","Bank2":"dsfsdf"}] 

我可以阅读从控制台我的数据,但不能在jqGrid的。我究竟做错了什么?

回答

0

请写出你总是使用的jqGrid的的版本并从其中的jqGrid的free jqGrid,商业Guriddo jqGrid JS或旧的jqGrid在< = 4.7版本)。

选项datatype: "json"结合datastr: mydata。您可以使用datastr结合datatype: "jsonstring"data: mydata结合datatype: "local"。如果您不需要明确阻止本地数据分类,则应使用datatype: "local"并通过data参数指定输入数据。在使用 “自由jqGrid的” 叉的情况下,可以跳过datatype: "local"

colModel: [ 
    {name: 'Id', key: true, width: 30}, 
    {name: 'Code', width: 50}, 
    {name: 'Name', width: 100, sortable: false} 
], 
data: mydata 

https://jsfiddle.net/OlegKi/vc2v9aLw/。您可以使用datatype: "jsonstring"或者:

colModel: [ 
    {name: 'Id', key: true, width: 30}, 
    {name: 'Code', width: 50}, 
    {name: 'Name', width: 100, sortable: false} 
], 
datatype: "jsonstring", 
datastr: mydata, 
jsonReader: { id: "Id" } 

https://jsfiddle.net/OlegKi/stvsxsts/。有关免费jqGrid使用情况的更多基础信息可以在here找到。两个网格显示

enter image description here

+0

这比我想象的要快。工作很好,谢谢。 – otosturop

+0

@otosturop:不客气! – Oleg