如何在jqGrid子网格中设置标题对齐?

时间:2012-04-13 15:32:04

标签: javascript jquery jqgrid subgrid

特别是简单的子网格,而不是“网格作为子网格”。

我尝试了各种各样的方法,但似乎都没有。

如果我挂钩subGridBeforeExpand,表格还没有准备好让我选择标题并设置css。

如果我挂钩subGridRowExpanded,则子网格甚至不会渲染。

align中的subGridModel属性仅影响单元格值。

这是我的模型供参考:

subGrid: true,
subGridUrl: myUrl,                    
subGridModel: [{ 
     name: ["Item", "Qty"],
     width: ["200", "100"],
     align: ["right", "right"],
     param: ["Id"]
}]

2 个答案:

答案 0 :(得分:2)

你是对的,Subgrids和Treegrids中的回调太少了。然而,因为我发现你的问题是非常有趣的挑战(+1来自我),我确实找到了解决方法。

您可以执行以下操作:

var $grid = $("#grid"), sid;
$grid.jqGrid({
    //... your other settings
    subGrid: true,
    serializeSubGridData: function(p) {
        sid = p.id; // save id from the last request
        return p;
    },
    ajaxSubgridOptions: {
        complete: function (sxml) {
            var ts = $grid[0], $subgridHeaders;
            if (ts.p.subgridtype === "xml") {
                ts.subGridXml (sxml.responseXML, sid);
            } else {
                ts.subGridJson($.jgrid.parse(sxml.responseText), sid);
            }
            // now the subgrid is completed and we can modify
            // style of subgrid headers
            $subgridHeaders = $('#' + $.jgrid.jqID(ts.id + '_' + sid))
                .find("th.ui-th-subgrid");
            // now we can do some custom actions:
            $($subgridHeaders[0]).css("text-align", "left");
            $($subgridHeaders[1]).css("text-align", "right");
        }
    }
});

在扩展子网格后,您可以here演示如下所示:

enter image description here

答案 1 :(得分:0)

我已经使用CSS选择器解决了问题,例如将第7列标题居中:

#GRIDID .subgrid-data th:first-child + th + th + th + th + th + th
{
    text-align: center;
}

或以整列为中心:

#GRIDID .subgrid-data th:first-child + th + th + th + th + th + th,
#GRIDID .subgrid-data td:first-child + td + td + td + td + td + td
{
    text-align: center;
}