A standard user interface enables a user to filter an arbitrary data set intuitively. The interface includes a header control presenting labels, filters and pulldown menus for each attribute of the data set. The user via the control header invokes a parent window, which receives the data set for display from the data provider. A generic filter control is then invoked and the user inputs one or more filters for filtering the data set. The filtering control and the data provider communicate via the parent window. The filtering control responding to messages from the data provider that request the operation of actions involving the filters. The filtering control sending details of user input events to the data provider. The data provider filtering the data set based upon the user input and according to a filtering technique selected by it.; Also the operation requested by the data provider could be to get a value from a filter and the details of the user inputs could be a change to a filter value.