0

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

我在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();

                }
            });
4

1 回答 1

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

希望这对你有帮助!

问候

于 2013-09-24T11:05:11.190 回答