2017-01-16 5 views
0

Ich habe Kendo Grid, die Spaltenüberschriften (zwei Header) gruppiert mit Datenquelle gruppiert hat. Ich verwende den folgenden Code, um den Spaltenindex des einzelnen Headerzeilenrasters zu erhalten, der gut funktioniert.Wie bekomme ich den Index einer bestimmten Spalte in einer gruppierten Spalte (Multi-Header) Kendo Raster

Aber das funktioniert nicht, wenn mein Kendo Grid zwei Headerzeilen hat. Unten ist der Screenshot meines Kendo-Gitters. Der oben erwähnte Code gibt den Index als 1 zurück, wenn ich tatsächlich versuche, den Index der überschüssigen/kurzen Spalte in dem Bild zu erhalten, das aussieht, als würde der Index zurückgesetzt, wenn eine neue Gruppe beginnt (Gruppenname: Anfordererdaten, siehe das Bild)

enter image description here

+0

mmm, also versuche ich zu verstehen, was Sie fragen. Versuchen Sie, die Zeile oder die Spalte zu erhalten? Welche Spalte ist die Spalte, die Sie erhalten und welche ist die, die Sie benötigen? Sind sie überhaupt gruppiert? – Keith

+0

@Keith, Tatsächlich sind einige der Spalten im Kendo-Grid gruppiert (mit Title-Header verschmolzen). Ich muss den Index der Spalte "Excess/Short" abrufen, um die Klasse für diese Spalte basierend auf einer bestimmten Bedingung festzulegen. Bitte beachten Sie das beigefügte Bild. Wenn ich den oben erwähnten Code verwende, gibt er 1 als Index zurück, aber tatsächlich ist der Index 6. Also suche ich Hilfe, um den tatsächlichen Index dieser Spalte zu erhalten. –

Antwort

0

Endlich habe ich die Lösung. Dies wird sowohl für die auf meine Frage erwähnte Szenario arbeiten

Insteed des Index direkt übernommen haben, müssen den Index der Spalte der Datenmenge

Bestehende Code nehmen:

var priColIndex = grid.wrapper.find(".k-grid-header [data-field=FromDemandQty]").index(); 
     var cell = row.children().eq(priColIndex); 

     if (dataItem.FromDemandQty < 0) 
      cell.addClass('stkShort'); 
     else 
      cell.addClass('stkExcess'); 

Sollte wie geändert werden:

var fromDemCell = grid.wrapper.find(".k-grid-header [data-field=FromDemandQty]"); 
        if (fromDemCell.length > 0) { 
         var priColIndex = parseInt(fromDemCell[0].dataset.index); 
         var cell = row.children().eq(priColIndex); 
         if (dataItem.FromDemandQty < 0) { 
          cell.addClass('stkShort'); 
         } 
         else 
          cell.addClass('stkExcess'); 
        } 
Verwandte Themen