javascript - dojo 中的状态服务器端过滤

标签 javascript dojo dojox.grid

我正在dojo 1.10版本的增强网格中进行服务器端过滤。 Here在文件中明确提到使用 是有状态的属性(property)。另外,如果我们使用 isStateful 属性,我们还需要使用 URL 参数,根据 文档是

当 isServerSide 和 isStateful 都为 true 时,如果 store.url 无法检索到服务器 url,则这里是设置服务器 url 的位置。

我想知道store.url这里有什么?我 在其他网站搜索过,我得到的 url 的其他定义来自 herehere

如果使用有状态,这是发送命令的 URL。默认为store.url

任何人都可以提供有关如何使用 isStateful 属性的简单示例或演示吗?我在这里很困惑。我们需要为此编写服务器端脚本吗?

最佳答案

require(['dojo/store/JsonRest',
        'gridx/Grid',
        'gridx/core/model/cache/Async',
        'gridx/modules/SingleSort',
        'gridx/modules/pagination/Pagination',
        'gridx/modules/CellWidget',
        'dijit/registry',
        'gridx/modules/Bar',
        'gridx/support/LinkPager',
        'gridx/support/Summary',
        'dojo/domReady!'],function(Store, Grid, Async, Sort, Pagination, CellWidget, registry, Bar, LinkPager, Summary){
    var jsonStore = new Store({
        idProperty: "id", target: <your url>,
                 query: function(query, options) {  
                     var request = {};              
                     /* Paging Params. */
                     if (grid==null) {   
                         /* null on first call to server. */
                         request.currentPage=0;
                         request.pageSize=DEFAULT_PAGE_SIZE;
                     } else {
                         request.currentPage=grid.pagination.currentPage();
                         request.pageSize=grid.pagination.pageSize();
                         if (request.pageSize==-1) {
                             /* Page size is -1 when 'ALL' records selected. Reset */
                              request.pageSize=DEFAULT_PAGE_SIZE;
                        }
                     }
                     /* Sorting Parameters. */
                     if (options.sort == null) {
                         /* null on first render. */
                         request.sortAttribute="id";
                         request.descending=false;
                     } else {
                        request.sortAttribute=options.sort[0].attribute;
                        request.descending=options.sort[0].descending;
                     }
                     var results = Store.prototype.query.call(this, request);   
                     return results;
                 }  
             });
             grid = new Grid({
                 cacheClass: Async,
                 store: jsonStore,
                 structure: <your column definition>,
                 barBottom: [{pluginClass: Summary, style: 'text-align: left;'},{pluginClass: LinkPager, style: 'text-align: right;'}],
                 modules:[Sort, Pagination, Bar, CellWidget]}); 
             grid.pagination.setPageSize(DEFAULT_PAGE_SIZE);
             registry.byId('gridDIV').set('content', grid);
             grid.startup();
         });

关于javascript - dojo 中的状态服务器端过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45159531/

相关文章:

javascript - Spring 是在升级他们的 JS 验证框架还是 JQuery 是更好的选择?

javascript - 在 Dojo EnhancedGrid FilterBar 上设置状态文本

dojox.grid.DataGrid自定义排序方法?

javascript - 在 Laravel 5.3 中动态更改图像

javascript - 当元素超出视口(viewport)时我应该删除它吗?

javascript - 如何在 webRTC 多对多系统上处理 socket.io 多个连接?

dojo的私有(private)变量

java - 如何将 Struts 2 中的 ajax 操作中的文本字段数据传递到原始调用 .jsp?

javascript - 如何在 dojo 中查询对象类型?

javascript - 如何使用带有可变查询字符串的 webpack 动态导入?