Как передать определение фильтра Dojo EnhanceGrid на серверную часть? - PullRequest
1 голос
/ 20 мая 2011

Я использую плагин фильтра dojox.grid.EnhancedGrid.Его введение в http://dojotoolkit.org/reference-guide/dojox/grid/EnhancedGrid/plugins/Filter.html#dojox-grid-enhancedgrid-plugins-filter.

И для реализации фильтра на стороне сервера, он говорит:

" По умолчанию, сторона сервера считается без сохранения состояния (стиль REST)В этом случае вы должны отправить определение фильтра на серверную сторону вместе с запросом на выборку хранилища. Это можно сделать, изменяя объект запроса каждый раз перед вызовом store.fetch."

И это дает некоторую часть примера кода:

var grid = new dojox.grid.EnhancedGrid({
  id:"grid",
  store:"mystore",
  structure:"mystructure",
  plugins:{
    filter: {
      isServerSide: true,
      setupFilterQuery: setupFilter
    }
  }
});
var setupFilter = function(commands, request){
  //the commands object here is the same as the POSTed commands object for stateful server, see below.
  if(commands.filter && commands.enable){
    //some filter is defined and valid. You can modify the request object here.
  }else{
    //no filter is valid.
  }
};

Из этого примера я до сих пор не знаю, как перенести определение фильтра на сторону сервера.commands.filter - это объект json, похожий на дерево.Как это можно передать на серверную сторону через параметры URL.Кто-нибудь может дать мне несколько примеров кодов?

С наилучшими пожеланиями ZY

1 Ответ

2 голосов
/ 24 мая 2011

вы можете использовать dojo.toJson для сериализации всего определения фильтра и оценки его на стороне сервера
например

request.query.filter=dojo.toJson(commands.filter);  

regards

...