2016-04-13 4 views
0

Ich habe ein Raster mit datengebundener Methode, die die Meldung 'Keine Daten gefunden für die Suche' zeigt, falls keine Daten nach der Suche abgerufen werden. Jetzt habe ich ein Optionsfeld hinzugefügt, das beim Anklicken die alten Daten aus dem Raster löschen muss. Das Problem ist, dass ich den Code $(grid).data("kendoGrid").dataSource.data([]); benutze, der das Gitter löscht, aber es zeigt auch die Meldung 'Keine Daten gefunden für die Suche'. Da der Benutzer keine Suche durchgeführt hat, sondern nur den Radioknopf geändert hat, scheint es nicht richtig zu sein, diese Nachricht im Grid anzuzeigen. Also habe ich mich gefragt, ob es eine Möglichkeit gibt, das Gitter zu löschen, ohne die datengebundene Methode aufzurufen.Wie lösche ich Kendo-Gitterzeilen, ohne die datengebundene Methode aufzurufen?

Grid Code, Databound-Funktion aufruft:

@(Html.Kendo().Grid<SearchModel>() 
      .Events(events => events.DataBound("gridDataBound")) 

Databound-Code:

function gridDataBound(e) { 
    var grid = e.sender; 
    var gridName = "#" + grid.table.context.id; 

    if (grid.dataSource.total() == 0) { 
      var colCount = grid.columns.length; 
      $(e.sender.wrapper) 
       .find('tbody') 
       .append('<tr class="kendo-data-row"><td colspan="' + colCount + '" class="no-data">No Records Meet Your Search Criteria.</td></tr>'); 
     } 
     $(gridName).find(".k-pager-wrap").hide(); 
}; 

Dank.

+0

Versuchen Sie, autoBind auf false zu setzen? – whipdancer

+0

@whipdancer ich werde das nicht können. – sanjeev40084

Antwort

0

Soweit ich weiß gibt es keine Möglichkeit, dies zu tun, ohne e.preventDefault() in der dataBound Funktion zu setzen. Was können Sie tun, ist vielleicht ein boolescher Wert, den Ihre DataBound-Funktion verwendet, um zu überprüfen, ob sie die Nachricht anzeigen soll oder nicht?

+0

was meinst du mit booleschem Wert? – sanjeev40084

+0

Wenn der Benutzer den Radiobutton ändert, haben Sie eine Funktion, die einen booleschen Wert ändert, nennen wir ihn 'showMessage' auf false. In der 'dataBound'-Funktion wrap alles in ein' if (showMessage) 'und am Ende des' dataBound' setze es auf true zurück – philr