3

具体的には、「サブグリッドとしてのグリッド」ではなく、単純なサブグリッドです。

さまざまな方法を試しましたが、どれもうまくいかないようです。

にフックするsubGridBeforeExpandと、ヘッダーを選択して css を設定する準備ができていません。

subGridRowExpandedsubGridに接続してもレンダリングされません。

alignプロパティはsubGridModel、セルの値にのみ影響します。

参照用の私のモデルは次のとおりです。

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

2 に答える 2

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");
        }
    }
});

サブグリッドを展開した後の次のようなデモをここで見ることができます。

ここに画像の説明を入力

于 2012-04-13T17:02:34.100 に答える
0

たとえば、7番目の列ヘッダーを中央に配置するために、CSSセレクターで解決しました。

#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;
}
于 2014-03-27T10:14:44.207 に答える