如何在组头标题行模式下对每组JQGrid下的子项进行排序?

时间:2016-11-08 14:43:29

标签: jquery jqgrid

我使用 Trirand JQGrid 4.6 生成组标题行 JQGrid。

我从demo website提取代码:

如您所见,日期列在页面加载时按升序排序。所以每组的所有孩子都按照日期的升序排序。但是,如何强制此列在页面加载时按降序排序,以便子项将按日期的描述顺序排序?

  1. 如何让网格停止对Inv No column的排序?
  2. enter image description here

    jQuery("#list483").jqGrid({
        data: mydata,
        datatype: "local",
        height: 'auto',
        rowNum: 30,
        rowList: [10,20,30],
        colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
        colModel:[
            {name:'id',index:'id', width:60, sorttype:"int"},
            {name:'invdate',index:'invdate', width:90, sorttype:"date", formatter:"date"},
            {name:'name',index:'name', width:100, editable:true},
            {name:'amount',index:'amount', width:80, align:"right",sorttype:"float", formatter:"number", editable:true},
            {name:'tax',index:'tax', width:80, align:"right",sorttype:"float", editable:true},      
            {name:'total',index:'total', width:80,align:"right",sorttype:"float"},      
            {name:'note',index:'note', width:150, sortable:false}       
        ],
        pager: "#plist483",
        viewrecords: true,
        sortname: 'name',
        grouping:true,
        groupingView : {
            groupField : ['name'],
            groupColumnShow : [false],
            groupText : ['<b>{0} - {1} Item(s)</b>']
        },
        caption: "Configure group header row"
    });
    

    EXTENDED POST:

    enter image description here

    我在帖子中扩展了对话。假设这种情况。数据来自数据库存储过程,stored procedure以特定的行顺序传递数据(见图),我想要使用与网格中的顺序完全相同的顺序。

    如附件所示,假设我已将您在demosite中使用的数据集简化为附加图像,我只使用三列Name, Date, Amount。正如您在图像上看到的那样,有四个记录,有两组NamesDates。假设我需要使用网格图像上显示的记录的确切顺序。另一个词也使用网格中存储过程中的行顺序。我必须关闭网格的默认排序等。我如何实现这一目标?

    所以最终结果应该是这样的:

         Test1
              12/12/2012         12000
               10/4/2012           2000 
    Test2
                1/1/2013            300000
                 7/24/2016         46000
    

1 个答案:

答案 0 :(得分:1)

我认为您的代码与图片不符。您可能使用sortname: "invdate"

要按invdate更改排序顺序,您需要添加选项sortorder: "desc"

如果您需要更改分组数据的顺序(name,因为您使用groupField : ["name"]),则可以将groupOrder属性添加到groupingView。例如

groupingView: {
    groupField: ["name"],
    groupOrder: ["desc"], // "asc" is by default
    groupColumnShow: [false],
    groupText: ["<b>{0} - {1} Item(s)</b>"]
}