In addition to embedded filters, you can also have a function external to the grid, that determines if a particular object matches a filter. So, for example, you could have an external filter panel, that would filter the records on basis of a column that is not shown in the grid, or some custom logic that cannot be easily wrapped in a filter control.
The way you do this, is to specify a filterFunction for the level you are interested in filtering. So if you want to filter the top level records, you would set the filterFunction and the top level. If you are interested in filtering inner level records, you would navigate to the level you are interested in, and then specify a filterFunction there. This is particularly applicable for hierarchical grids (as opposed to flat grids) because hierarchical grids don't have a filter bar for sub grids. For a running example of this functionality, please review http://www.reactdatagrid.com/demo/#ExternalFilter