Dojo中服务器端的enhancedgrid过滤器插件

时间:2013-09-24 10:35:57

标签: javascript dojo dojox.grid.datagrid dojox.grid

我是道场的新手,在这方面苦苦挣扎,请帮助.....

我在dojo中使用EnhancedGrid中的过滤器插件....我在客户端做得很好但是来到服务器端我不知道如何调用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();

                }
            });

1 个答案:

答案 0 :(得分:0)

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

   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

你好! 我必须深入挖掘网络的宽度,但最近我认为我找到了如何定义过滤器的问题的答案。

 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

希望这能帮到你!

此致