2012-04-13 52 views
3

特别是简单的子网格,而不是“网格作为子网格”。如何在jqGrid子网格中设置标题对齐方式?

我试过了各种各样的方法,但似乎没有工作。

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

如果我钩入subGridRowExpanded子网格将不会呈现。

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

这里是我的参考模型:

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

回答

2

你是对的,有在亚栅格和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

+0

像往常一样,奥列格来救援。谢谢! – IronicMuffin 2012-04-13 17:44:40

+0

@IronicMuffin:不客气! – Oleg 2012-04-13 17:45:22

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