在Jqgrid中进行子网格扩展时,主网格中的列重新排序不受影响?

时间:2014-11-21 07:36:04

标签: jquery jqgrid jqgrid-php

我有网格和子网格。我重新排序主网格中的列。更改主网格中列的位置会影响子网格中的列值,同时展开子网格。

jQuery("#list14").jqGrid({ 
url:'server.php?q=2', 
datatype: "json",
height: 200, 
colNames:['Inv No','Date', 'Client','Amount','Tax','Total','Notes'], 
colModel:[ {name:'id',index:'id',width:55}, 
{name:'invdate',index:'invdate', width:90},
{name:'name',index:'name', width:100}, 
{name:'amount',index:'amount',width:80, align:"right"}, 
{name:'tax',index:'tax', width:80,align:"right"}, 
{name:'total',index:'total', width:80,align:"right"},
{name:'note',index:'note', width:150, sortable:false} ], 
rowNum:10,
rowList:[10,20,30], 
pager: '#pager14', 
sortname: 'id', 
viewrecords:true, 
sortorder: "desc", 
sortable:true,
subGrid : true, 
subGridUrl:'subgrid.php?q=3', 
subGridModel: [{ name :['No','Item','Qty','Unit','Line Total'], 
width : [55,200,80,80,80],
params:['invdate']} ] , caption: "Subgrid with JSON Data" });
jQuery("#list14").jqGrid('navGrid','#pager14',{edit:false,add:false,del:false});

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法。在父网格中启动列重新排序的过程之后,我首先关闭了子网格。

我从奥列格的回答中得到了code

以下代码在loadComplete函数之前添加。

sortable: {
           options: {                           
                        start: function(event, ui) {                                
                            $(".ui-subgrid").hide(3);
                            $('#list14 tr td').each(function() {
                            $(".ui-sgcollapsed").removeClass("sgexpanded").addClass("sgcollapsed");
                            $(".ui-sgcollapsed.sgcollapsed").find("span").removeClass("ui-icon-minus").addClass("ui-icon-plus");
                         });
                        }
                   }

                },