java - gxt 2.3 网格过滤器不起作用

标签 java gxt

我的过滤器不会重新加载网格,但“升序排序”、“降序排序”和“列”运行良好。我使用了本教程,但该演示的过滤器也不起作用:http://www.sencha.com/examples-2/#filtergrid

我在onModuleLoad()中的代码:

    configs = new ArrayList<ColumnConfig>();
    column = new ColumnConfig("id", "Id", 20);  
    column.setAlignment(HorizontalAlignment.LEFT);    
    configs.add(column); 

    column = new ColumnConfig("name", "Név", 50);  
    column.setAlignment(HorizontalAlignment.LEFT);          
    configs.add(column);                    

    column = new ColumnConfig("address", "Cím", 100);  
    column.setAlignment(HorizontalAlignment.LEFT);  
    configs.add(column);

    column = new ColumnConfig("email", "Első email", 100);  
    column.setAlignment(HorizontalAlignment.LEFT);  
    configs.add(column); 

    column = new ColumnConfig("startDate", "Feltöltés", 100);  
    column.setAlignment(HorizontalAlignment.LEFT); 
    configs.add(column);  

    column = new ColumnConfig("changeDate", "Módosítás", 100);  
    column.setAlignment(HorizontalAlignment.LEFT); 
    configs.add(column);  

cm = new ColumnModel(configs);  

    idFilter = new NumericFilter("id"); 
    nameFilter = new StringFilter("name");      
    addressFilter = new StringFilter("address"); 
    emailFilter = new StringFilter("email");  
    startDateFilter = new DateFilter("startDate");
    changeDateFilter = new DateFilter("changeDate");

usersListGridFilter=new GridFilters();
    usersListGridFilter.setLocal(true);
    usersListGridFilter.clearFilters();
    usersListGridFilter.addFilter(idFilter);
    usersListGridFilter.addFilter(nameFilter);
    usersListGridFilter.addFilter(addressFilter);
    usersListGridFilter.addFilter(emailFilter);
    usersListGridFilter.addFilter(startDateFilter);
    usersListGridFilter.addFilter(changeDateFilter);
    usersListGridFilter.setAutoReload(true);
    usersListGridFilter.setUpdateBuffer(100);

usersClientList= new ListStore<UserClient>();
    usersList.add(ClientTestUsers.getUsers());

usersClientListGrid=new Grid<UserClient>(usersClientList, cm);
    usersClientListGrid.setStyleAttribute("borderTop", "none");  
    usersClientListGrid.setAutoExpandColumn("name");  
    usersClientListGrid.setBorders(true);  
    usersClientListGrid.setStripeRows(true);  
    usersClientListGrid.getView().setForceFit(true);  
    usersClientListGrid.setColumnLines(true);  
    usersClientListGrid.addPlugin(usersListGridFilter);
    usersClientListGrid.setLoadMask(true);

cp = new ContentPanel();    
    cp.setBodyBorder(true);  
    cp.setHeadingText("Users");
    cp.setButtonAlign(HorizontalAlignment.CENTER);    
    cp.setLayout(new FitLayout());    
    cp.setSize(800, 300);   
    cp.add(usersClientListGrid); 

usersListFormPanel = new FormPanel();
    usersListFormPanel.add(usersListHorizontalPanel);
    usersListFormPanel.add(cp);
    usersListFormPanel.setWidth(820);

RootPanel.get("startWindowDiv").add(usersListFormPanel);

最佳答案

我也遇到了同样的问题。

我修补了 com.extjs.gxt.ui.client.widget.grid.filters.AbstractGridFilters。

我替换:

  protected StoreFilter<ModelData> getModelFilter() {
    StoreFilter<ModelData> storeFilter = new StoreFilter<ModelData>() {
      public boolean select(Store<ModelData> store, ModelData parent, ModelData item, String property) {
        for (Filter filter : filters.values()) {
          if (filter.isActivatable() && filter.isActive() && !filter.validateModel(item)) {
            return false;
          }
        }
        return true;
      }
    };
    for (Filter filter : filters.values()) {
      if (!filter.isActivatable() || !filter.isActive()) {
        return null;
      }
    }
    return storeFilter;
  }

protected StoreFilter<ModelData> getModelFilter() {
    StoreFilter<ModelData> storeFilter = new StoreFilter<ModelData>() {
        public boolean select(Store<ModelData> store, ModelData parent, ModelData item, String property) {
            for (Filter filter : filters.values()) {
                if (filter.isActivatable() && filter.isActive() && !filter.validateModel(item)) {
                    return false;
                }
            }
            return true;
        }
    };

return storeFilter;
}

关于java - gxt 2.3 网格过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17448947/

相关文章:

java - 如何以编程方式将边距中的 px 转换为 dp?

java - 如何在测试套件中定义 JUnit 方法规则?

java - ReactorClientHttpConnector((<no type> opt) -> {}) 未定义

java - 如何在网格中添加一列复选框,其中所有行中只能选择一个?

java - GWT - 具有拖放操作的关系数据库

java - GXT : destroying Dialogbox didn't work

java - 如何从对象中的 getter 中获取数组值?

Java 注释将字段设置为其名称

java - BorderLayout容器大小问题

java - 如何从 BeanModelMarker 派生 BaseModel 或 BeanModel