2012-04-13 7 views
3

Insbesondere das einfache Untergitter, nicht "Gitter als Untergitter".Wie setze ich die Header-Ausrichtung in einem jqGrid-Untergitter?

Ich habe eine Vielzahl von Methoden ausprobiert, aber keine scheint zu funktionieren.

Wenn ich in subGridBeforeExpand einhaken, ist die Tabelle nicht bereit für mich, die Überschriften auszuwählen und die CSS einzustellen.

Wenn ich haken in subGridRowExpanded wird das SubGrid nicht einmal rendern. Die align-Eigenschaft in subGridModel wirkt sich nur auf den Zellenwert aus.

Hier ist mein Modell als Referenz:

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

Antwort

2

Sie haben Recht, dass es zu wenige Rückrufe in Teilnetzen und Treegrids. Trotzdem, weil ich deine Frage sehr interessant herausgefordert habe (+1 von mir) habe ich einen Workaround gefunden.

können Sie wie folgt vorgehen:

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

Sie können die Demo here, die nach dem Aufweiten von Teilnetzen wie folgt aussieht:

enter image description here

+0

Wie üblich, Oleg zur Rettung. Vielen Dank! – IronicMuffin

+0

@IronicMuffin: Gern geschehen! – Oleg

0

ich mit einem CSS-Selektor gelöst haben B. zum Zentrieren der 7. Spaltenüberschrift:

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

oder zu gesamte Spalte:

#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; 
} 
Verwandte Themen