2012-03-29 9 views
2

Ich verwende derzeit GridView, um tabellarische Daten anzuzeigen. Ich muss Zellen in der ersten Spalte zusammenführen, die die gleichen Werte haben. Im Moment habe ich Code in der PreRender Veranstaltung, um die RowSpan Eigenschaft für mich zu setzen, und es funktioniert gut.ASP.net Grid-Paging mit gemischten Zeilen

Das Problem ist, ich kann Paging nicht verwenden, da die Seiten in der Mitte eines Abschnitts aufgeteilt werden, wo das erste Feld gleich ist.

Ich möchte die Anzahl der Datensätze für das Paging zählen für jede der zusammengeführten Zeilen statt eins für jede Unterzeile.

Ist dies mit GridView oder einem anderen jQuery-Grid möglich?

+1

hallo Andrew haben Sie bekam th Die Lösung dafür. habe das gleiche Problem mit der Gridview in Asp.net nach dem Zusammenführen der Zeilen. – Venki

+0

Diese Frage muss erneut beachtet werden. – Nicolas

Antwort

0

Anstatt das Merging auf UI-Ebene zu verarbeiten, würde es funktionieren, die Datenquelle so vorzubereiten, dass Sie einfach direkt daran binden können?

Erstellen Sie im Grunde ein Ansichtsmodell, das die Daten in einem einfacheren Format zum Binden enthält.

GridView.DataSource() = vmAlreadyMergedAndReadtToGoOBject 
GridView.DataBind(); 

Ich bin nicht sicher, wo Sie die Daten immer aus, aber können Sie das Objekt, das Sie Ihr Gitter nicht bauen binden programmatisch basierend auf dem Ergebnis setzen Sie wieder von der Quelle (Datenbank?) Dann Wenn Sie dieses Objekt erstellen, indem Sie die Zeilenwerte kombinieren, die identisch sind, können Sie das Gitter einfach an es binden ... Nicht ganz klar, was Sie tun, aber das war das erste, was mir in den Sinn kam ...

+0

Mir ist keine Möglichkeit bekannt, Zeilen in der Datenquelle zusammenzuführen - können Sie das näher erläutern? – Flash

+0

Aktualisierte ursprüngliche Antwort – TGH

0
for (i = PagSize; i <= dt.Rows.Count; i++) 
{ 
    Curr = dt.Rows[i - 1]["Brand"].ToString(); 
    if (i < dt.Rows.Count) 
    { 
     Nxt = dt.Rows[i]["Brand"].ToString(); 
     diff = dt.Rows.Count - i; 
     if (Curr != Nxt) 
     { 
      DctPaging.Add(PageNum, i); 
      PageNum = PageNum + 1; 
      i = i + PagSize; 
      if (i >= dt.Rows.Count) 
      { 
       DctPaging.Add(PageNum, i); 
       break; 
      } 
     } 
    } 
} 

Referenz Click Here