在 Dojo 的服务器端增强网格过滤器插件

enhancedgrid filter plugin at server-side in Dojo

本文关键字:网格 过滤器 插件 增强 服务器端 Dojo      更新时间:2023-09-26

我是道场的新手,..在这方面挣扎了很多,请帮忙.....

我正在道场的增强网格中使用过滤器插件....我在客户端做得很好,但来到服务器端我不知道如何调用 servlet 并将过滤后的行放入网格,请在此提供帮助......

我尝试过这样的事情....

           grid = new EnhancedGrid({
                id : 'grid',
                store : yourStore,
                structure : layout,
                rowSelector : '20px',
                plugins : {
                            search : true,
                            pagination : {
                                pageSizes : [ "50", "100"],
                                description : true,
                                sizeSwitch : true,
                                pageStepper : true,
                                gotoButton : true,
                                maxPageStep : 2,
                                position : "bottom"
                            },
                            filter : {
                                closeFilterbarButton : true,
                                ruleCount : 5,
                                ruleCountToConfirmClearFilter:2,
                                itemsName : "rows",
                                isServerSide:true,
                                isSateful:true,
                                url:"http:myaddress:8080/GridExample/Filter",
                                setupFilterQuery: setupFilter

                            }
                        }
                    });

                var setupFilter = function(commands, request){
                        if(commands.filter && commands.enable){
                            // some filter is defined and valid. You can modify the request object here.
                          }else{
                            // no filter is valid.
                          }
                        };
                    grid.placeAt("myGrid");
                    grid.startup();
                }
            });

首先:你加载插件正确吗?

   dojo.require("dojox.grid.enhanced.plugins.Filter");

也许这对您的问题有所帮助:

http://dojotoolkit.org/reference-guide/1.8/dojox/grid/EnhancedGrid/plugins/Filter.html#introduction-to-server-side-filtering

问候

更新 1

嘿,你好!我必须深入研究 Web 的宽度,但最近我想我找到了您如何定义过滤器问题的答案。

 plugins: {
            filter: {
              isServerSide: true,
              setupFilterQuery: function(commands, request){
                if(commands.filter && commands.enable){
                     console.log(commands.filter);
                     request.query = {
                         "Name": "L*"
                                      }       
                }
               }
               itemsName:'songs',
               closeFilterbarButton: true,
               ruleCount: 8
              }
           }

我从这里抓住这个:https://bitbucket.org/dojo/dojox/src/64328839903b/grid/tests/enhanced/test_enhanced_grid_filter.html

此示例定义一个筛选器,该筛选器在存储区中搜索以字母"L"开头的所有名称。使用其他受支持的运算符,您可以定义自己的筛选器。

http://dojotoolkit.org/reference-guide/1.9/dojox/grid/EnhancedGrid/plugins/Filter.html#supported-operators

希望对您有所帮助!

问候