2016-03-28 1 views
-1

Ich habe ein Raster mit einer Schaltfläche, die Sie zu einer anderen Ansicht, wo alle Daten des ausgewählten Elements zeigen, zeigen, was Ich versuche zu tun ist, dass, wenn der Benutzer zur Rasteransicht zurückkehren, die Filter des Rasters bleiben, anstatt alle Daten anzuzeigen.e (...). Find (...). AddBack ist keine Funktion Kendo Grid SetOptions

für die Filter zu speichern, ich verwende die getOptions Methode von Kendo Grid und gespeichert auf localStorage mit dem folgenden Code:

var grid = $("#Grid").data("kendoGrid"); 
var op = grid.getOptions(); 
localStorage["KendoGridOptions"] = JSON.stringify(op); 

Und diese:

object in console

Das Problem ist, wenn Ich versuche, die setOptions Methode zu verwenden, ich mache dies auf $(document).ready nach der Initialisierung des Gitters:

var options = localStorage["KendoGridOptions"]; 
if (options) { 
    var op = JSON.parse(options); 
    var grid = $("#Grid").data("kendoGrid"); 
    grid.setOptions({ 
     dataSource: op.dataSource 
    }); 
    localStorage.removeItem("KendoGridOptions"); 
} 

Und ich bekomme diese Fehlermeldung auf der gid.setOptions Linie:

enter image description here

Vorschläge, wie diese Fehler zu beheben, oder wie das gewünschte Verhalten zu bekommen?

Antwort

4

Das Problem wurde die jQuery-Version wird addBack Funktion auf der Version 1.8 hinzugefügt, dieses Projekt noch die 1,7 hat, nur die Version ändern und Werke perfekt.

+1

danke, du hast mir den tag gerettet. –

0

Ich habe durch folgende Methode erreicht. Wenn Sie nur Seitenzahl, Seitengröße, sortieren und filtern möchten, erwähnen Sie nur diese. Ich habe versucht, alle Optionen zu speichern, und ich erinnere mich an Probleme. Ich habe viel Zeit damit verbracht. Lassen Sie uns wissen, wenn Sie noch irgendwelche Fragen haben

function saveGridOptions() { 
var grid = $("#gridName").data("kendoGrid"); 
var dataSource = grid.dataSource; 

var state = { 
    page: dataSource.page(), 
    pageSize: dataSource.pageSize(), 
    sort: dataSource.sort(), 
    filter: dataSource.filter() 
}; 
    localStorage["kendo-grid-options"] = kendo.stringify(state);  
} 


function loadGridOptions() { 
var grid = $("#gridName").data("kendoGrid"); 
var state = ""; 
state = localStorage["kendo-grid-options"]; 

if (state) { 

    data = JSON.parse(state); 
    var options = grid.options; 
    options.dataSource.page = data.page; 
    options.dataSource.pageSize = data.pageSize; 
    options.dataSource.sort = data.sort; 
    options.dataSource.filter = data.filter; 
    grid.destroy(); 

    $("#gridName") 
    .kendoGrid(options); 

} 

}

+0

Ich habe versucht, Ihren Code zu verwenden, aber immer noch den gleichen Fehler, jetzt auf der 'grid.destroy()' Linie, irgendeine Idee? –

+0

Was ist der Fehler? Ist es der gleiche Fehler? –

+0

Das Problem war die jQuery-Version, "addBack" -Funktion ist auf der 1.8-Version hinzugefügt, dieses Projekt noch die 1.7, ändern Sie einfach die Version und funktioniert perfekt. –