Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>As an update, I expanded this function and modified it to work with ExtJS 4.1.1</p> <p>Here is an example of the function to set grid filters dynamically (without the user needing to click on the menu items). Afterwards, the filtered items will be visible to the user in the grid column header menus as if he clicked on them and set them manually.</p> <p>The "grid" argument is a grid with <code>FiltersFeature</code> that you want to filter. The other argument is an array of "filter" objects (I'll show an example below), the function simply applies all the passed "filter" objects to the grid. </p> <pre><code>doGridFilter: function(grid, filters) { // for each filter object in the array Ext.each(filters, function(filter) { var gridFilter = grid.filters.getFilter(filter.field); gridFilter.setActive(true); switch(filter.data.type) { case 'date': var dateValue = Ext.Date.parse(filter.data.value, 'm/d/Y'), value; switch (filter.data.comparison) { case 'gt' : value = {after: dateValue}; break; case 'lt' : value = {before: dateValue}; break; case 'eq' : value = {on: dateValue}; break; } gridFilter = log.filters.getFilter(filter.field); gridFilter.setValue(value); gridFilter.setActive(true); break; case 'numeric': var value; switch (filter.data.comparison) { case 'gt' : value = {gt: filter.data.value}; break; case 'lt' : value = {lt: filter.data.value}; break; case 'eq' : value = {eq: filter.data.value}; break; } gridFilter = log.filters.getFilter(filter.field); gridFilter.setValue(value); gridFilter.setActive(true); break; case 'list': gridFilter = log.filters.getFilter(filter.field); gridFilter.menu.setSelected(gridFilter.menu.selected, false); gridFilter.menu.setSelected(filter.data.value.split(','), true); break; default : gridFilter = log.filters.getFilter(filter.field); gridFilter.setValue(filter.data.value); break; } }); } </code></pre> <p>Here's an example of a "filter" object array.</p> <pre><code>// an example of a "filters" argument [{ field: 'some_list_column_data_index', data: { type: 'list', value: 'item1,item2,item3,item4,item5,item6,item7' } }, { field: 'some_date_column_data_index', data: { type: 'date', comparison: 'gt', value: '07/07/2007' } }] </code></pre> <p>One caveat, you need to "create" the filters manually before using this function. Normally <code>FiltersFeature</code> grid filters are "created" the first time a user clicks on one of them, that may not happen if the user just wants to apply one of these predefined filters. </p> <p>That can be handled easily by including this afterrender listener in the gridpanel.</p> <pre><code>listeners: { // must create the filters after grid is rendered afterrender: function(grid) { grid.filters.createFilters(); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload