2016-09-30 2 views
1

Ich möchte die abgerufenen Daten in Beschreibungsfeld sortieren, aber die Sortierung funktioniert nicht.Rasterdaten in Kendo UI Grid sortieren

UI-Code: Zeigt die Daten korrekt

var gridDataSource = new kendo.data.DataSource({ 
    autoSync: true, 
    data: transformation.Activities, 
    schema: { 
     model: { 
      id: "TransformerActivityUID", 
      fields: { 

       //It has different field. for instance one is 
       TargetTable: { editable: false, sortable: true }, 

      } 
     } 
    }, 
    sort: { field: "Description", dir: "desc" }, 
    group: { field: "TargetTable" } 
}); 

CreateGrid("functionTable", new BasicGrid(gridDataSource, columns, ActivityChanged)); 
ChangesDetection(ToggleSave); 
AutoResizeModal("95%"); 
var grid = GetGridData("functionTable"); 
$("#functionsList").kendoDropTarget({ 
    group: "gridGroup", 
    drop: AddActivity 
}); 

grid.table.kendoDropTarget({ 
    group: "gridGroup", 
    drop: AddActivity 
}); 

Wenn ich Abrufen der Daten Ich will es von Beschreibungsfeld sortiert werden

functionTableGrid = GetGridData("functionTable"); 
gridSource = functionTableGrid.dataSource; 
gridData = functionTableGrid.dataSource.data(); 
var dsSort = []; 
dsSort.push({ field: "Description", dir: "desc" }); 
var testData = gridSource.sort(dsSort); 
var sortedData= testdata.data(); 
//I have tried this 
gridData.dataSource.sort(dsSort) //not working 
gridSource.sort(dsSort); // not working 

Es ist wichtig, dass ich die gleichen Daten, wie es hier haben wird in der Benutzeroberfläche angezeigt. Ich habe verschiedene Dinge ausprobiert, aber ich bin mir nicht sicher, wie es funktionieren wird. Ich bin ziemlich neu in JavaScript, also wäre jede Hilfe großartig.

+0

Hilft dieser Link? -> http://stackoverflow.com/questions/13863111/kendoui-programmaga-setting-grid-sort –

+0

var kendoGrid = $ ("# grid"). data ('kendoGrid'); eigentlich verstehe ich diese Zeile nicht. –

+0

Ich habe diese Frage gesehen, aber es funktioniert nicht für mich –

Antwort

2

Versuchen Sie, Ihre Daten-Array (GridData in Ihrem Fall) in JSON-Array durch den Aufruf gridData.toJson() zu konvertieren. und versuchen, so etwas wie:

gridData = [{name: "tester 03", param2: "test3"}, 
      {name: "tester 01", param2: "test1"}, 
      {name: "tester 02", param2: "test2"}]; //Assuming some test values here 

var sortedData = a.sort(function(e,f) { 
    return e.name < f.name; //by name or description or whatever 
}); 

oder in eine Funktion umwandeln, wenn diese dir Sache ist, über die Richtung der Art

function sortData(arr, sorter) { 
    return arr.sort(function(e,f) { 
      return sorter.dir == "desc" ? 
        e[sorter.field] < f[sorter.field] : e[sorter.field] > f[sorter.field]; 
    }); 
} 

Und die Werte passieren wie: sortData(gridData, {field: "Description", dir: "desc"})

Hoffe, dass es funktioniert.

+0

Vielen Dank für Ihre Hilfe –