jqgrid只显示组列名

时间:2014-12-23 13:39:33

标签: jqgrid jqgrid-formatter

如何合并jqgrid标头。我只想显示组头名称。到目前为止我已经这样做了,问题是我只想显示组列名。

jQuery("#grid").jqGrid({
...
   colNames: ['Date', 'Client', 'Amount', 'Tax', 'Total', 'Closed', 'Shipped via', 'Notes'],
   colModel: [
         {name: 'invdate', index: 'invdate', width: 80, align: 'center', sorttype: 'date',
            formatter: 'date', formatoptions: {newformat: 'd-M-Y'}, datefmt: 'd-M-Y'},
         {name: 'name', index: 'name', width: 70 },
         {name: 'amount', index: 'amount', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'tax', index: 'tax', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'total', index: 'total', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'closed', index: 'closed', width: 75, align: 'center', formatter: 'checkbox',
            edittype: 'checkbox', editoptions: {value: 'Yes:No', defaultValue: 'Yes'}},
         {name: 'ship_via', index: 'ship_via', width: 100, align: 'center', formatter: 'select',
            edittype: 'select', editoptions: {value: 'FE:FedEx;TN:TNT;IN:Intim', defaultValue: 'Intime'}},
         {name: 'note', index: 'note', width: 70, sortable: false}
    ],
    rowNum: 10,
    rowList: [5, 10, 20],
 ...
});
jQuery("#grid").jqGrid('setGroupHeaders', {
  useColSpanStyle: false, 
  groupHeaders:[
    {startColumnName: 'amount', numberOfColumns: 3, titleText: '<em>Price</em>'},
    {startColumnName: 'closed', numberOfColumns: 2, titleText: 'Shiping'}
  ]
});

1 个答案:

答案 0 :(得分:4)

如果您只想显示多个列上的标题,并且合并列中的数据排序对于调整列的大小没有意义,那么您可以在不使用{的情况下解决问题{1}}。

The demo显示以下结果

enter image description here

它使用setGroupHeaders选项为所有列设置cmTemplate: { resizable: false },在某些列中使用resizable: false,并在创建网格后使用以下代码:

sortable: false

上面的代码可以将列到标题对齐的问题最小化为1px,但最大的问题可以解决。