Extjs6 Excel like grid filters with store

99封情书 提交于 2020-01-07 04:18:10

问题


I am trying to create a complex filter for a grid. I want the following general behavior:

  • The filters have a different store than the grid
  • Apply filter on column A
  • The grid is filtered based on my selection
  • The filter in column B will show the available items

Also, the grid has a button that clears all the filters and more, remove the checked items from the filters.

Based on this link I've tried to do something similar. I've created also a fiddle.

Regarding the fiddle, I have some question:

1.The following code returns undefined. Based on the documentation it should return a Menu object.

business.filter.menu = business.filter.createMenu({
        store: localStore
})

2.I want to clear the checked items when user press the Clear Inline Filter button.

    var f = Ext.ComponentQuery.query('test-grid')[0].getColumnManager().getHeaderByDataIndex(element).filter;
    if (f.menu) {
        for (var j = 0; j < f.menu.items.length; j++) {
            f.menu.items.items[j].setChecked(false)
        }
    }

Here the, f.menu is always undefined so I can't clear the checkbox. Somehow I lose reference to menu.

How to clear the checkboxes based on my scenario? Why the createMenu returns undefined?

Edit

The accepted answer worked for this specific question(fiddle)


回答1:


On a general note: Don't call methods/use properties explicitly marked private in the documentation. This usually means the way you're doing something is wrong and there is another more automated way to achieve that. Especially don't take Ext4 examples and port them 1:1 to Ext5 or Ext6. The Framework changed quite a lot in Ext5 and a little more in Ext6.

In this case the filter menu is supposed to be created automatically from the filter store without human interaction. In order to uncheck a menu items, simply stop filtering by that value.

Using the ColumnManager to find a certain column is also a reserved for internal use, but I can see why you'd want to go that way. It's easier than filtering the response form getColumns by hand.



来源:https://stackoverflow.com/questions/46930211/extjs6-excel-like-grid-filters-with-store

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!