2016-05-03 9 views
0

Ich arbeite mit einer DataTable an eine GridView auf meiner Seite gebunden. Der Benutzer kann GridView-Zeilen löschen und ändern, sodass jede Zeile nach jeder Änderung sortiert wird. Die dataTable hinter der gridView ist für zwei Felder aufsteigend sortiert. Einer, der jedes Element in einer Gruppe zählt, und einen anderen, der Gruppenindexe sortiert.Sortieren von Datentabellen nach dem Update

Der Benutzer kann Gruppen löschen, aber die Reihenfolge der Nummern, dann ist es durcheinander. was ich brauche, ist neu indizieren jedes Mal, wenn die Tabelle eine Gruppe gelöscht werden, so dass ich ohne Lücken fortlaufende Nummern haben:

zum Beispiel:

group id group id sorted 
0   0 
0   0 
0   0 
1   1 
1   1 
3   2 
3   2 
6   3 
6   3 

ich diese Funktion versucht, aber wiht ergebnislos (I erwartet das). Vielleicht hat schon jemand dieses Problem gelöst und kann helfen.

protected void reindexGroupsLayers(DataTable dtLayers) 
{ 
    //after every change to the index structure 
    //this function re-sorts the index 
    DataView uniqueGroupIndexesView = new DataView(dtLayers); 
    uniqueGroupIndexesView.Sort = "groupindex asc"; 
    DataTable uniqueGroupIndexesTable = uniqueGroupIndexesView.ToTable(true, "groupindex"); 
    int i = 0; 
    foreach (DataRow uniqueRow in uniqueGroupIndexesTable.Rows) 
    { 
     int oldIndex = (int)uniqueRow["groupindex"]; 
     foreach (DataRow groupRow in dtLayers.Rows) 
     { 
      if ((int)groupRow["groupindex"] == oldIndex) 
      { 
       groupRow["groupindex"] = i; 
      } 
      else 
      { 
       continue; 
      } 
      i++; 
     } 
    } 
    DataView dtLayersView = dtLayers.DefaultView; 
    dtLayersView.Sort = "groupindex, layerindex asc"; 
    DataTable dtLayersSorted = dtLayersView.ToTable(); 
    gvMapLayers.DataSource = dtLayersSorted; 
    gvMapLayers.DataBind(); 
    Session["webmaplayers"] = dtLayersSorted; 
} 

Antwort

-1

Sie können "DataTable" Javascript-Funktionalität für dieses Problem verwenden. Bitte beziehen Sie sich auf https://www.datatables.net/.

Es wird Ihr Sortierproblem mit Einstellparameter in Javascript einstellen.

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.

Dank

Verwandte Themen