簡體   English   中英

Jqgrid不綁定數據

[英]Jqgrid not binding data

我從WebService得到Json響應,如下所示

Json完美地返回了數據。 數據看起來像

{ “d”: “[{\\” ID \\ “:2,\\” 代碼\\ “:\\” mycode的\\ “\\ ”名稱\\“:\\ ”的Myname \\“,\\ ”密碼\\“:\\” A \\ “\\ ”ClientLevel \\“:0,\\ ”DEPTNO \\“:\\ ”\\“ \\ ”DEPTNAME \\“:\\ ”\\“},{\\ ”ID \\“:3,\\ ”代碼\\“:\\” mycode \\“,\\” Name \\“:\\” liy1 \\“,\\” PassWord \\“:\\” mypassword \\“,.......但未綁定我的jqgrid。

我有以下Jqgrid代碼

jQuery("#list2").jqGrid({
                mtype: 'POST',
                url: "myservice.asmx/GetQueryInfo",                  

                serializeGridData: function (postData) {
                    return JSON.stringify({
                        TableNames: TableName,
                        ColumnList: ColumnNames
                    });
                },

                ajaxGridOptions: { contentType: "application/json; charset=utf-8" },
               jsonReader: {
                        repeatitems: false,
                        root: 'd',                           
                        page: function (obj) { return 1; },
                        total: function (obj) { return 1; },
                        records: function (obj) { return obj.toString().length; }
                    },
                datatype: 'json',
                colNames: ['ID', 'Code', 'Name', 'PassWord', 'ClientLevel', 'DeptNo', 'DeptName'],
                colModel: [
                    { name: "ID", width: 55 },
                    { name: "Code", width: 90 },
                    { name: "Name", width: 100 },
                    { name: "PassWord",  width: 80 },
                    { name: "ClientLevel",  width: 80 },
                    { name: "DeptNo",  width: 80 },
                    { name: "DeptName",  width: 150 }
                ],
                autoencode: true,
                gridview: true,
                rowNum: 10,
                loadonce: true,
                rowList: [10, 20, 30],
                pager: '#pager2',
                sortname: 'ID',
                viewrecords: true,
                sortorder: "ID",
                caption: "JSON Example",
                loadError: function (jqXHR, textStatus, errorThrown) {
                    alert('HTTP status code: ' + jqXHR.status + '\n' +
                          'textStatus: ' + textStatus + '\n' +
                          'errorThrown: ' + errorThrown);
                    alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText);
                }
            });
            jQuery("#list2").jqGrid('navGrid', '#pager2', { edit: false, add: false, del: false });

我仍然認為您在服務器端使用舊代碼( WebMethod返回字符串而不是對象),因為d屬性的值是字符串。 您可以將jsonReader root用作答案中定義的函數。 在這種情況下,它也適用於您的情況。 所以你可以使用

jsonReader: {
    repeatitems: false,
    root: function (obj) {
        return typeof obj.d === "string" ? $.parseJSON(obj.d) : obj.d;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM