은 웹 응용 프로그램의 페이지에 jqgrid를 구현했습니다. 모든 것은 레코드를 보여주고 레코드를 제거하는 것처럼 작동하지만, IE 호환 모드를 IE 7 또는 8에 넣으면 그리드가 표시되기까지 3 초에서 5 초가 걸립니다. 나는 또한 오직 하나의 기록만을 보여주고있다.jqgrid IE 8/7 성능
저는 jquery 1.6을 사용하고 있으며 아무런 차이가없는 최신 버전으로 업그레이드를 시도했습니다. 내가 알아챈 한 가지는 jquery가 clean이라는 함수를 호출하는 것입니다.이 함수는이 브라우저에서만 3 초가 걸릴 것으로 보이지만 왜 또는 무엇을하는지 전혀 모릅니다.
var id = $("#<%=DesID.ClientID%>").val();
$.getJSON("data.aspx?id=" + id, function (data) {
jQuery("#list2").jqGrid({
datatype: 'jsonstring',
colNames: ['', 'Id', 'BodyId', ' Officers Body', 'Alternative Responsible Officer', ''],
colModel: [
{
name: 'RowID',
sortable: false,
shrinkToFit: false,
width: 10,
formatter: function (cellvalue, options, rowObject) {
var Rowid = options.rowId;
return "<span >" + Rowid + " </span>";
}
},
{ name: 'Id', index: 'Id', width: 0, hidden: true, sortable: false },
{ name: 'BodyId', index: 'BodyId', sortable: false, width: 0, hidden: true },
{ name: 'BodyName', index: 'BodyName', sortable: false, shrinkToFit: true },
{ name: 'BodyNameRo', index: 'BodyNameRo', sortable: false, width: '100%' },
{
name: 'Delete',
sortable: false,
shrinkToFit: true,
width: 20,
formatter: function (cellvalue, options, rowObject) {
var Rowid = options.rowId;
return "<input type='button' value='Delete' class='btn' onClick='deleteRecords(" + Rowid + ");' />";
}
}
],
beforeSelectRow: function (rowid, e) {
return false;
},
onInitGrid: function() {
// get reference to parameters
var p = $(this).jqGrid("getGridParam");
// set data parameter
p.datastr = data;
},
viewrecords: true,
caption: "",
autowidth: true,
shrinkToFit: true,
height: '100%',
scroll: false,
gridview: true,
loadOnce: true
});
HiddenJson.val(JSON.stringify(data));
});
코드에 이상한 점이 많이 있습니다. 'colModel'은 예를 들어'name : 'actions ''와 같은 이름을 갖는 ** ** ** ** 열을 가지고 있습니다. 그것은 오류입니다. 당신은'sortname : 'id ''를 사용합니다, 격자에는 "id"컬럼이 없습니다. 'datatype : 'local'대신에'datatype : 'jsonstring'을 사용하는 이유가 불분명합니다. 귀하의 주요 질문 : 나는 모든 그리드에서''를 사용합니다. IE8이나 IE7을 시뮬레이트하고 다른 어떤 "X-UA 호환"태그를 사용해야하는 이유는 무엇입니까? 나는 당신이 [대답] (http://stackoverflow.com/a/25532422/315935)을 읽을 것을 권한다. – Oleg
그리드를 렌더링하려면 위의 권장 사항과 5 초가 걸렸습니다. 나는 또한 지역을 시도했지만 아무런 차이가 없었으므로 나는 jsonstring으로 되돌아 갔다. 짝수는 그리드에 데이터가 없으면 5 초가 걸립니다. jsonstring을 사용하지 않아야하는 이유가 있습니까? –
그리드는 데이터베이스에서 선택한 항목을 가져 오는 것보다 더 많은 작업을 수행하지 않으므로 사용자는 새 행이나 기존 행을 추가하거나 삭제할 수 있습니다. 사용하면 숨겨진 필드에 저장된 json이 업데이트됩니다. 페이지가 게시되면 json을 가져 와서 그에 따라 데이터를 업데이트합니다. –