2014-12-23 2 views
0

Как объединить заголовок jqgrid. Я хочу показать имя заголовка группы. Пока я это сделал, проблема в том, что я хочу показать имя столбца группы.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'} 
    ] 
}); 
+0

Непонятно, что вы хотите. Вы хотите скрыть «Сумма», «Налог», «Всего» и «Закрыто», «Отправлено через»? Как сортировать или изменять размеры столбцов? – Oleg

+0

@oleg Я не хочу сортировать – ozil

+0

@Oleg Моя сетка имеет восемь столбцов, но я хочу объединить заголовки в три столбца. – ozil

ответ

4

Если вы хотите только отображения заголовков на несколько столбцов и сортировки данных в объединенном столбце не интересен для вас, как изменения размеров столбцов, то вы можете решить эту проблему без использования setGroupHeaders.

The demo отображает следующие результаты

enter image description here

Он использует cmTemplate: { resizable: false } возможность установить resizable: false для всех столбцов, он использует sortable: false в некоторых столбцах, и он использует следующий код после создания сетки:

var newWidth = $("#list_amount").width() + $("#list_tax").outerWidth(true) + 
     $("#list_total").outerWidth(true); 
$grid.jqGrid("setLabel", "amount", "<em>Price</em>", "", { 
    style: "width: " + newWidth + "px;", 
    colspan: "3" 
}); 
$grid.jqGrid("setLabel", "tax", "", "", {style: "display: none"}); 
$grid.jqGrid("setLabel", "total", "", "", {style: "display: none"}); 
newWidth = $("#list_closed").width() + $("#list_ship_via").outerWidth(true); 
$grid.jqGrid("setLabel", "closed", "Shiping", "", { 
    style: "width: " + newWidth + "px;", 
    colspan: "2" 
}); 
$grid.jqGrid("setLabel", "ship_via", "", "", {style: "display: none"}); 

Приведенный выше код может иметь минимальные проблемы с выравниванием столбца до выравнивания заголовка меньше, чем 1px, но самая проблема может быть решена в wa у.

+0

без colspan отлично подходит для моего случая – mass