2016-04-28 2 views
0

Я использую dojo (1.8) EnhancedGrid с NestedSorting для моего динамического поиска. Поскольку каждый поиск может отличаться в количестве столбцов, я хочу сбросить последнюю сортировку, прежде чем использовать setStore. Когда я щелкнул, чтобы отсортировать сетку, додзе добавляет последний вид последнего поиска в новый запрос на данный момент. Я хочу начать без всякого рода каждый раз, когда я использую setNewDataToGrid(). Есть ли способ, которым я могу это достичь?dojo EnhancedGrid reset nestedSort

Мой тест HTML:

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

Моя сетка:

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(); 
    }); 

Моя функция сброса:

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); 
    }); 
} 

ответ

0

Try: grid.render(); или grid.startup(); вместо того, чтобы устанавливать хранилище как пустое («») каждый раз. Если это не помогает сделать api https://dojotoolkit.org/api/, посмотрите, какие свойства соответствуют вашим сетчатым функциям при его создании, например, вы можете добавить autoRender: true. P.S. попробуйте использовать новую версию, v1.8 имеет проблемы, особенно если вы используете IE.

Смежные вопросы