0
我遇到我的html頁面3個格,我使用不能排序多JQ電網
loadonce:真實的; datatype:xml;
數據之後已經加載我改變
數據類型:本地;
我這樣做,所以當我做排序或分頁,我不想調用重新加載。 這個效果很好,當我在我的頁面中只有一個網格,但是當我的頁面上有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);
}
}
});
};
感謝,
德萬·奈爾
您應該發佈您使用的JavaScript代碼。如果使用'loadonce:true',則在從服務器加載第一個數據後,jqGrid會自動將數據類型更改爲「local」。重要的是,您發佈了用於所有網格的XML數據。一頁上有許多網格的典型問題 - id重複。 – Oleg 2011-05-16 12:23:40
如果您發佈的文章包含代碼,您應該選擇它並點擊「{}」按鈕,在每行的開頭添加4個空格。此外,您應該包含網格的測試XML數據。沒有數據就無法測試排序。 – Oleg 2011-05-16 13:20:19