pluto_grid
pluto_grid copied to clipboard
Filter by code
Congratulations on the great work.
One question, can you filter by code from outside the grid?
PlutoStateManager stateManager;
`PlutoGrid( columns: myData.columns, rows: myData.rows, onLoaded: (PlutoOnLoadedEvent event) { stateManager = event.stateManager; }, ),
filter() { stateManager.setFilter((element) { // Number 2 is column return element.cells.entries.elementAt(2).value.value.contains('item2'); }); }
reset_filter() { stateManager.setFilter(null); } `
Well done. I will document the filter related things.
PlutoStateManager stateManager;
`PlutoGrid( columns: myData.columns, rows: myData.rows, onLoaded: (PlutoOnLoadedEvent event) { stateManager = event.stateManager; }, ),
filter() { stateManager.setFilter((element) { // Number 2 is column return element.cells.entries.elementAt(2).value.value.contains('item2'); }); }
reset_filter() { stateManager.setFilter(null); } `
Based on JesusMayuri7's answer I have modified the code a little bit as per my usage. Thanks for your contribution.
_searchController.addListener(() { _plutoGridStateManager!.setFilter((element) { bool matched = element.cells.entries.any((obj) => obj.value.value .toString() .toLowerCase() .contains(_searchController.text.toLowerCase())); return matched; }); //This setState does not rebuild Table, as that requires a new key or change in key to be provided.// //But this will filter the data inside the table very efficiently. Really awesome plugin.// setState(() {}); });
Is there a way to retrieve column index by its name?
Something like:
colIdx = ...;
return element.cells.entries.elementAt(colIdx).value.value.contains('item2');
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.