This MSDN article shows how to implement a SharePoint web part that can act as a consumer or a provider. However, if you try to use it as a "drill through" web part (another web part filters the results in this web part; clicking on this web part filters or populates another web part), it won't work (actually it will; but it will give unpredictable results)
The reason is that the filter value which filters the grid isn't available when the page is reloaded for the second click-through, and so the index returned on the postback points to the wrong row. The simple solution is to store the selected index in a ViewState variable and test against both the ViewState and the returned datagrid index, then filter as appropriate.
PhiloI had no illusionsThat I'd ever find a glimpse of summer's heatwaves in your eyes