【问题标题】:Jqgrid 3.7 does not show rows in internet explorerJqgrid 3.7 在 Internet Explorer 中不显示行
【发布时间】:2011-03-04 12:36:09
【问题描述】:

我正在使用 ASP.NET 和 Jqgrid 3.7 进行测试,在 Firefox 中它可以正常工作,但在 IE 中它不会在网格中显示任何行。

来自网络服务的响应是

{"d":
    {"__type":"jqGrid",
     "total":"1",
     "page":"1",
     "records":"10",
     "rows":[
         {"id":"180","cell":["180","Cultura"]},
         {"id":"61","cell":["61","Deporte"]},
         {"id":"68","cell":["68","Deporte"]},
         {"id":"5","cell":["5","Economía"]},
         {"id":"67","cell":["67","Economía"]},
         {"id":"76","cell":["76","Economía"]},
         {"id":"178","cell":["178","Economía"]},
         {"id":"4","cell":["4","Entrevista"]},
         {"id":"66","cell":["66","Entrevista"]},
         {"id":"78","cell":["78","Entrevista"]}
     ]
    }
}

电话是

myGrid = $("#list").jqGrid({
    url: 'ws/WsNoticias.asmx/jqObtenerTemas',
    datatype: 'json',
    mtype: 'GET',
    loadBeforeSend: function(XMLHttpRequest) {
        XMLHttpRequest.setRequestHeader("Content-Type", "application/json");
    },
    colNames: ['Id', 'Nombre'],
    colModel: [
        {name: 'Id', index: 'Id', width: 20, align: 'left', editable: false},
        {name: 'Nombre', index: 'Nombre', width: 200, align: 'left', editable: false}
    ],
    rowNum: 10,
    rowList: [5, 10, 200],
    sortname: 'Nombre',
    sortorder: "asc",
    pager: $("#listp"),
    viewrecords: true,
    caption: '',
    width: 600,
    height: 250,
    jsonReader: {
        root: "d.rows",
        page: "d.page",
        total: "d.total",
        records: "d.records"
    }
});

我看不出问题出在哪里...,对于 3.6 之前的版本和

thegrid.addJSONData(JSON.parse(jsondata.responseText).d);

它可以代替 jsonReader 工作。

【问题讨论】:

    标签: asp.net json optimization jqgrid asmx


    【解决方案1】:

    您应该首先使用 URL 中的完整路径(以 http:// 或至少以 / 开头)。 Internet Explorer 在很多情况下使用相对 url 时都会出错。

    一些更小的一般性评论。您可以使用ajaxGridOptions: { contentType: 'application/json; charset=utf-8' } 代替loadBeforeSend。也可以删除其他一些默认值(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options)。

    myGrid = $("#list").jqGrid({
        url: 'http://www.ok-soft-gmbh.com/jqGrid/Jqgrid37json.txt',
        datatype: 'json',
        mtype: 'GET',
        ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
        colModel: [
            { name: 'Id', width: 20 },
            { name: 'Nombre', width: 200 }
        ],
        rowNum: 10,
        rowList: [5, 10, 200],
        sortname: 'Nombre',
        sortorder: "asc",
        pager: $("#listp"),
        viewrecords: true,
        width: 600,
        height: 250,
        jsonReader: {
            root: "d.rows",
            page: "d.page",
            total: "d.total",
            records: "d.records"
        }
    });
    

    此外,您可以将 JSON 数据减少到

    {"d":
        {"__type":"jqGrid",
         "total":"1",
         "page":"1",
         "records":"10",
         "rows":[
             ["180","Cultura"],
             ["61","Deporte"],
             ["68","Deporte"],
             ["5","Economía"],
             ["67","Economía"],
             ["76","Economía"],
             ["178","Economía"],
             ["4","Entrevista"],
             ["66","Entrevista"],
             ["78","Entrevista"]
         ]
        }
    }
    

    并在jsonReader的定义中添加poperty单元格:“”:

    jsonReader: {
        root: "d.rows",
        page: "d.page",
        total: "d.total",
        cell: "",
        records: "d.records"
    }
    

    您可以验证http://www.ok-soft-gmbh.com/jqGrid/Jqgrid37.htmhttp://www.ok-soft-gmbh.com/jqGrid/Jqgrid37Comact.htm 在所有标准网络浏览器中都可以正常工作。

    【讨论】:

    • 谢谢,它就像一个魅力。关键是:ajaxGridOptions: { contentType: 'application/json;字符集=utf-8' }
    猜你喜欢
    • 1970-01-01
    • 2011-11-29
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2015-10-28
    相关资源
    最近更新 更多