2016-04-28 12 views
0

Ich verwende Dojo (1.8) EnhancedGrid mit NestedSorting für meine dynamische Suche. Da jede Suche in der Anzahl der Spalten unterschiedlich sein kann, möchte ich die letzte Sortierung zurücksetzen, bevor ich setStore verwende. Wenn ich geklickt habe, um das Raster zu sortieren, fügt Dojo der letzten Anfrage die letzte Art der letzten Suche hinzu. Ich möchte ohne jedes Mal, wenn ich setNewDataToGrid() verwende, starten. Gibt es eine Möglichkeit, das zu erreichen?dojo EnhancedGrid reset nestedSort

Mein Test HTML:

<div id="testGrid"></div> 
<span onClick="setNewDataToGrid();">test</span> 

Mein Gitter ist:

require([ 
     "dojox/grid/EnhancedGrid", 
     "dojox/data/JsonRestStore", 
     "dojox/grid/enhanced/plugins/NestedSorting", 
     "dojox/grid/enhanced/plugins/Exporter", 
     "dojo/domReady!", 
     "dojox/grid/cells/dijit" 
    ], function(DataGrid, JsonRestStore) { 
     var store = new JsonRestStore({target:"/basis/contact/"}); 
     var grid = new DataGrid({ 
      style:  "height: 400px;", 
      store:  store, 
      query:  "", 
      plugins: {"nestedSorting": true}, 
      structure: [ 
       { 
        defaultCell: { editable: false }, 
        cells:  [ 
         { name: "ID", field: "id", width: "50px", }, 
         { name: "Name", field: "p_familienname", width: "200px"}, 
        ] 
       } 
      ], 
      selectionMode: "single" 
     }, "testGrid"); 
     grid.startup(); 
    }); 

Meine Reset-Funktion ist:

function setNewDataToGrid() { 
    require(["dojox/data/JsonRestStore"], function (JsonRestStore) { 
     var grid = dijitRegistry.byId("testGrid"); 
     var dataStore = new JsonRestStore({target: "/basis/member/"}); 
     // here I'm adding the new layout with other columns 
     [...] 
     grid.setStructure(newColumns); 
     //insert reset sort here! 
     var query = "somethingnew..." 
     gid.setStore(dataStore, query); 
    }); 
} 

Antwort

0

Versuchen: grid.render(); oder grid.startup(); anstatt den Speicher immer leer zu setzen (""). Wenn das nicht hilft gehen Sie die api https://dojotoolkit.org/api/ sehen, welche Eigenschaften Ihrer Grid-Funktionalität, wenn Sie es erstellen, wie Sie AutoRender hinzufügen: true. P.S. versuchen Sie es mit der neuen Version, v1.8 hat Probleme, vor allem, wenn Sie IE verwenden.