如何自定义头jqgrid

时间:2012-12-17 11:16:55

标签: jqgrid jqgrid-asp.net jqgrid-formatter

我想要像这样创建jqGrid enter image description here
我可以在jqGrid身上写下这段代码

var data = [[1, 45, "E123", "1/1/11", "Done", 100], [2, 46, "E124", "1/12/11", "Done", 100]];

$("#grid").jqGrid({
    datatype: "local",
    height: 250,
    colNames: ["SNO", "OrderID", "Location", "Date", "Status", "Amount"],
    colModel: [{
        name: 'SNO',
        index: 'SNO',
        width: 60},
    {
        name: 'OrderID',
        index: 'OrderID',
        width: 90,
        formatter:orderFmatter},
    {
        name: 'Location',
        index: 'Location',
        hidden: true},
    {
        name: 'Date',
        index: 'Date',
        width: 80,
        formatter:dateStatusFmatter},
    {
        name: 'Status',
        index: 'Status',
        width: 80,
        hidden: true},
    {
        name: 'Amount',
        index: 'Amount',
        width: 80}
    ],
    caption: "Stack Overflow Example",
});

var names = ["SNO", "OrderID", "Location", "Date", "Status", "Amount"];
var mydata = [];
for (var i = 0; i < data.length; i++) {
    mydata[i] = {};
    for (var j = 0; j < data[i].length; j++) {
        mydata[i][names[j]] = data[i][j];
    }
}

for (var i = 0; i <= mydata.length; i++) {
    $("#grid").jqGrid('addRowData', i + 1, mydata[i]);
}

function orderFmatter( cellvalue, options, rowObject )
{
    return "<div>" + cellvalue + "</div><hr /><div>" + rowObject.Location + "</div>";
}

function dateStatusFmatter( cellvalue, options, rowObject )
{
    return "<div>" + cellvalue + "</div><hr /><div>" + rowObject.Status+ "</div>";
}

此代码创建此网格
enter image description here

在这个网格中我想要像主体网格一样的divid标题

1 个答案:

答案 0 :(得分:3)

jqGrid支持header grouping。如果您只需要在列标题中放置多行文本,则可以更简单的方式实现它。

colNames中的值可以是HTML片段。因此,您应该将所需的代码放在colNames的相应项中,并添加额外的CSS,强制使用列标题的auto高度,而不是默认情况下jqGrid使用的固定高度。

The demo放在HTML片段

的最后一列的列标题中
<div style="height: auto; padding: 4px 0;">
    <span>Shipped</span><hr /><span>via</span>
</div>

并另外使用CSS

.ui-jqgrid .ui-jqgrid-labels .ui-th-column>div {height: auto}

结果得到如下图所示的网格

enter image description here