Jqgrid 3.7 не показывает строки в Internet Explorer - PullRequest
1 голос
/ 16 июня 2010

Я тестирую с 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 работает.

1 Ответ

3 голосов
/ 17 июня 2010

Вы должны просто использовать полный путь в 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.htm и http://www.ok-soft-gmbh.com/jqGrid/Jqgrid37Comact.htm, который работает без проблем во всех стандартных веб-браузерах.

...