我使用
在我的html页面中有3个网格loadonce:true; 数据类型:xml;
加载数据后我改变了
数据类型:local;
我这样做,以便当我进行排序或分页时,我不想要重新加载。 当我的页面中只有一个网格但是当我的页面上有3个网格时,排序无效。
任何人都可以帮忙。
this.createPortServerGrid = function(){
//_this.rowDataLoaded = false;
_this.X$("#serverGrid").jqGrid({
mtype : 'POST',
url : DXOP_SERVER,
datatype : "xml",
postData : {
swNote1 : '<epiq> <request> <action> <object>commline</object> <method>find</method> <language>enus</language> </action> <data> <row> <dynamic>0</dynamic> </row> </data> <sql> <orderby>devicename</orderby> </sql> </request> </epiq>'
},
colModel : [ {
label : "Name",
name : 'name',
index : 'name',
xmlmap : "name"
}, {
label : "Port",
name : 'devicename',
index : 'devicename',
sorttype: 'int',
xmlmap : "devicename"
}, {
label : "Port State",
name : 'state',
index : 'state',
xmlmap : "state"
}, {
name : 'pk',
index : 'pk',
xmlmap : "pk",
hidden : true
}, {
name : 'childserverfk',
index : 'childserverfk',
xmlmap : "childserverfk",
hidden : true
},
{
name : 'porttmplfk',
index : 'porttmplfk',
xmlmap : "porttmplfk",
hidden : true
} ],
xmlReader : {
root : "data",
row : "row",
repeatitems : false,
id : "pk"
},
rowNum : 10,
height : 400,
autowidth : true,
rowList : [ 10, 20, 30 ],
pager : '#pager3',
altRows : true,
sortname : 'name',
loadonce : true,
recordpos : 'left',
viewrecords : true,
sortorder : "desc",
multiselect : false,
afterInsertRow : function(rowid, rowdata, rowelem) {
$('#' + rowid).contextMenu('port_portMenuJqGrid',
_this.serverPortMenu);
},
loadComplete : function(rowId) {
var sraw = _this.X$("#serverGrid").getGridParam('xmlRawData');
handleErrorMessage(sraw);
_this.serverParseRowData(sraw);
_this.createPortTemplateGrid();
_this.serverfilterGrid();
if(_this.serPortSel != null){
_this.X$('#serverGrid').jqGrid('setSelection',
_this.serPortSel);
}
_this.X$('#serverGrid').setGridParam({datatype:'local'});
alert("********"+_this.X$('#serverGrid').setGridParam('datatype')[0]);
},
onSelectRow : _this.loadServerGrid,
ondblClickRow : _this.editServerTemplate
});
};
this.createCurrentSessionGrid = function(){
_this.X$("#currentTemplGrid").jqGrid({
mtype : 'POST',
url : DXOP_SERVER,
datatype : "xml",
postData : {
swNote1 : '<epiq> <request> <action> <object>commline</object> <method>find</method> <language>enus</language> </action> <data> <row> <dynamic>1</dynamic> </row> </data> <sql> <orderby>devicename</orderby> </sql> </request> </epiq>'
},
colModel : [ {
label : " Current File Name",
name : 'currentfilename',
index : 'currentfilename',
xmlmap : "currentfilename"
}, {
label : "Current Byte Sent",
name : 'currentbytessent',
index : 'currentbytessent',
xmlmap : "currentbytessent"
}, {
label : "Current Byte Recived",
name : 'currentbytesreceived',
index : 'currentbytesreceived',
xmlmap : "currentbytesreceived"
}, {
label : "Port State",
name : 'state',
index : 'state',
xmlmap : "state"
}, {
label : "Current Endpoint",
name : 'currentendpoint',
index : 'currentendpoint',
xmlmap : "currentendpoint"
}, {
label : "Current User",
name : 'dynamic',
index : 'dynamic',
xmlmap : "dynamic"
}, {
name : 'pk',
index : 'pk',
xmlmap : "pk",
hidden : true
} ],
xmlReader : {
root : "data",
row : "row",
repeatitems : false,
id : "pk"
},
rowNum : 10,
height : 400,
autowidth : true,
rowList : [ 10, 20, 30 ],
pager : '#pager3',
altRows : true,
//loadonce : true,
sortname : 'id',
recordpos : 'left',
viewrecords : true,
sortorder : "desc",
multiselect : false,
afterInsertRow : function(rowid, rowdata, rowelem) {
$('#' + rowid).contextMenu('port_currentMenuJqGrid',
_this.currentSessionMenu);
}
,onSelectRow : _this.curSessionSelectedRow,
loadComplete : function(rowId) {
var craw = _this.X$("#currentTemplGrid") .getGridParam('xmlRawData');
handleErrorMessage(craw);
_this.currentParseRowData(craw);
_this.currentfilterGrid();
if(_this.curSessnSel != null){
_this.X$('#currentTemplGrid').jqGrid('setSelection',
_this.curSessnSel);
}
}
});
};
this.curSessionSelectedRow = function(){
_this.portTempSel = _this.X$("#currentTemplGrid").jqGrid('getGridParam', 'selrow');
};
this.createPortTemplateGrid = function(){
_this.X$("#portTemplGrid").jqGrid({
mtype : 'POST',
url : DXOP_SERVER,
datatype : "xml",
postData : getPostData('<action> <object>porttemplate</object> <method>find</method> <language>enus</language> </action> <data> <row/> </data> '),
colModel : [ {
label : "Name",
name : 'name',
index : 'name',
xmlmap : "name"
}, {
label : "Type",
name : 'linetype',
index : 'linetype',
xmlmap : "linetype"
}, {
label : "Job Look up Timeout",
name : 'getworktimeout',
index : 'getworktimeout',
xmlmap : "getworktimeout"
}, {
name : 'pk',
index : 'pk',
xmlmap : "pk",
hidden : true
} ],
xmlReader : {
root : "data",
row : "row",
repeatitems : false,
id : "pk"
},
rowNum : 10,
height : 400,
autowidth : true,
rowList : [ 10, 20, 30 ],
pager : '#pager2',
loadonce : true,
altRows : true,
sortname : 'name',
recordpos : 'left',
viewrecords : true,
sortorder : "desc",
multiselect : false,
afterInsertRow : function(rowid, rowdata, rowelem) {
$('#' + rowid).contextMenu('port_porttemplMenuJqGrid',
_this.portTemplateMenu);
},
onSelectRow : _this.portTemplSelectedRow,
ondblClickRow : _this.editPortTemplate,
loadComplete : function(rowId) {
var traw = _this.X$("#portTemplGrid").getGridParam('xmlRawData');
handleErrorMessage(traw);
_this.templateParseRowData(traw);
_this.createCurrentSessionGrid();
//_this.X$("#portTemplGrid").trigger("reloadGrid");
//_this.X$("#portTemplGrid").setGridParam({datatype:'xml'}).trigger('reloadGrid');
_this.X$('#portTemplGrid').setGridParam({datatype:'local'});
_this.portfilterGrid();
if(_this.portTempSel != null){
_this.X$('#portTemplGrid').jqGrid('setSelection',
_this.portTempSel);
}
}
});
};
感谢,
德万
答案 0 :(得分:0)
您使用网格“#serverGrid”和“#currentTemplGrid”相同的寻呼机'#pager3'是不允许的。您不能在网格之间共享一个寻呼机div。
此外,如果某些网格列不应解释为文本,则应定义描述数据类型的sorttype
。
如果使用afterInsertRow
,网格的工作速度会慢得多。如果需要将数据绑定到loadComplete
:
loadComplete: function() {
// your old code here and then
$('tr.jqgrow',this).contextMenu('port_portMenuJqGrid',_this.serverPortMenu);
}
删除afterInsertRow
后,您应该将gridview:true
参数添加到网格中。它将多次改善电网性能。