Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 无法对多个jq网格进行排序_Sorting_Jqgrid - Fatal编程技术网

Sorting 无法对多个jq网格进行排序

Sorting 无法对多个jq网格进行排序,sorting,jqgrid,Sorting,Jqgrid,我在我的html页面中使用了3个网格 loadonce:正确; 数据类型:xml 数据加载后,我更改 数据类型:本地 我这样做是为了当我进行排序或分页时,我不想调用重载。 当我的页面中只有一个网格时,这种方法很有效,但是当我的页面上有3个网格时,排序就不起作用了 谁能帮忙吗 this.createPortServerGrid = function(){ //_this.rowDataLoaded = false; _this.X$("#serverGrid").jqGrid({

我在我的html页面中使用了3个网格

loadonce:正确; 数据类型: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); 
            }
        }
    });
};
谢谢


Devan

您在grids serverGrid和currentTemplGrid中使用了不允许的同一个寻呼机“pager3”。不能在网格之间共享一个寻呼机div

此外,如果某些网格列不应解释为文本,则应定义描述数据类型的sorttype

如果使用afterInsertRow,网格将运行得非常慢。如果需要将数据绑定到loadComplete中的所有行,请执行以下操作:


删除afterInsertRow后,应向网格中添加gridview:true参数。它将多次提高网格性能。

您应该发布您使用的JavaScript代码。如果使用loadonce:true,则在从服务器首次加载数据后,jqGrid会自动将数据类型更改为“本地”。发布用于所有网格的XML数据非常重要。一页上有许多网格的典型问题-id重复。如果你发布包含代码,你应该选择它并单击{}按钮,在每行的开头添加4个空格。此外,还应该包括网格的测试XML数据。没有数据,就无法测试排序。
loadComplete: function() {
    // your old code here and then
    $('tr.jqgrow',this).contextMenu('port_portMenuJqGrid',_this.serverPortMenu);
}