2016-05-05 9 views
0

Ich brauche eine Möglichkeit, ein Radgitter mit Javascript von jQuery zu sortieren Ich möchte vermeiden, einen Webdienst zu verwenden, da nirgendwo sonst im Projekt einen Webdienst verwendet.Telerik RadGrid Sortierung Client Seite JavaScript jQuery

Ich binde mit dem Raster mit JavaScript und erfordern kein OnNeedDataSource-Ereignis.

<ClientEvents OnRowSelected="RowSelected" OnRowDeselected="RowDeselected" OnCommand="RadGridCommand"/> 

Auf dem Client RadGridCommand Ereignisse abbrechen I Standardbefehl Postbacks/Ajax-Request und prüfen, ob der Befehl eine Art Ereignis an dieser Stelle zu verhindern, ist i eine Möglichkeit zu schaffen, möchte mein Gitter zu sortieren.

 //RadGrid Command function 
     function RadGridCommand(sender, args) { 

      args.set_cancel(true); //cancel the default command to prevent postback/ajax request 

      if (args.get_commandName() == "Sort") { 
      var sortExpressions = sender.get_masterTableView().get_sortExpressions(); 

Irgendwelche Vorschläge sehr geschätzt

Antwort

0

würde ich es bekam arbeiten mit einer Art JavaScript-Funktion

LotResults.sort(function (a, b) { 
    return b.LotResult - a.LotResult //Sort DESC order 
}) 

ich den Befehlsnamen verwenden, um zu überprüfen, ob die Art Befehl aufgerufen wird und brechen Sie die Standard Befehl, um ein Postback zu verhindern.

Ich nehme dann die sortExpressions, um die Sortierreihenfolge zu erhalten, um zu entscheiden, ob die Reihenfolge aufsteigend oder absteigend sein soll. Binden Sie schließlich mein Objekt an das Raster, um die Ansicht zu aktualisieren.

Unten ist, wie ich tat es ein bisschen mehr Arbeit von meiner Seite es auf dem Weg zu räumen muss ich es sein müssen, aber es funktioniert und mein Gitter Sortierung :)

//RadGrid Command function 
function RadGridCommand(sender, args) { 

args.set_cancel(true); //cancel the default command to prevent postback/ajax request 

if (args.get_commandName() == "Sort") { 
    var sortExpressions = sender.get_masterTableView().get_sortExpressions(); 
    var sortVal = sortExpressions.toString(); 

    if (sortVal != "") { 

     var fieldName = sortExpressions.getItem(0).get_fieldName(); 
     var sortOrder = sortExpressions.getItem(0).get_sortOrder(); 

     if (sortOrder == 1) { 
      LotResults.sort(function (a, b) { 
        return b.LotResult - a.LotResult 
      }) 
     } 
     else if (sortOrder == 2) {      
       LotResults.sort(function (a, b) { 
          return a.LotResult - b.LotResult 
       }) 
     } 
    } 

    var masterTable = $find("<%= DeactivationLotResultsRadGrid.ClientID %>").get_masterTableView(); 
    masterTable.set_virtualItemCount(LotResults.length); 
    masterTable.set_dataSource(LotResults); 
    masterTable.dataBind(); 
    }}