2016-08-08 47 views
0

Ich habe ein Kendo-Raster (mit Paginierung aktiviert) mit einigen Einträgen. Sagen wir, ich habe 5 Seiten, und ich habe eine Zeile von jeder Seite ausgewählt (auf das Kontrollkästchen geklickt) und dann auf die oberste Aktion DELETE geklickt. Ich kann nicht herausfinden, wie Sie die Einträge aus dem Raster und der Datenquelle löschen können.Löschen von Zeilen aus Kendo Grid mit Paginierung

I unten Code versucht, das die Einträge aus der Seite löscht, die in dem Raster sichtbar ist (auf dem Bildschirm)

 var grid = $("#grid").data("kendoGrid"); 
     var userSelectionInfo = usersService.getUserSelectionInfo(); 
     for(var userName in userSelectionInfo) { 
      if(userSelectionInfo[userName]) { 
       var selector = '#' + userName+ '_actions'; 
       grid.removeRow($(selector).closest('tr')); 
      } 
     } 

I einen weiteren Ansatz versucht:

I ein geschaffen Array von Objekten, die nach dem Löschen aus dem ursprünglichen Array von Objekten übrig bleiben und dann in die Rasterdatenquelle eingefügt werden.

var newData = []; 
    var userSelectionInfo = usersService.getUserSelectionInfo(); 
    for(var i = 0; i < users.length; i++) { 
     if(users[i].userName&& !userSelectionInfo[users[i].userName]) { 
      newData.push(users[i]); 
     } 
    } 
    loadUsersIntoGrid(newData); 

Gibt es eine bessere Ansatz oder Kendo API, die ich vermisse? Vielen Dank im Voraus.

Antwort

0

Sie können aus der dataSource anstelle von grid löschen. Zuerst die ID jedes ausgewählten Elements in ein Array drücken, sagen DeleteList. Dann können Sie aus der Datenquelle löschen, indem Sie auf den oberen LÖSCHEN klicken.

for(i=0; i<= DeleteList.length; i++) 
{ 
    grid.dataSource.remove(grid.dataSource.get(DeleteList[i])); 
} 
+0

grid.dataSource.get (DeleteList [i]) ist, gibt undefinierten – Azim

+0

DeleteList einen Array zum Speichern von Ids wird, der gelöscht werden muss. Zuerst müssen Sie das Array definieren und IDs hineinschieben. –