I am using a grid that initially only pulls the most commonly used data fields for each record in the grid (what I call level 1). Optionally, the user can expand a given row, in which case additional details are displayed in a nested grid, which I call level2. This works fine when a single row is expanded.
I have a method for the user to expand all of the rows currently displayed in the level1 grid. When this occurs, a call is made to the server for each row that is being expanded in order to pull the additional details for the level2 grid for each row. This is a very slow operation when I am displaying a large number of rows in the level1 grid (for example, 100 rows).
I am wondering if it is possible to query the data for all of the rows to be expanded in a single call to the server and then use the resulting data set to populate all of the level2 grids without having to make n round trips to the server for one record at a time. Querying and returning the data for all rows is not a problem. But since each level2 grid is a separate object, I am not sure how to point them all to the appropriate data on the client side, or if it is even possible.
Or is there a better approach to populating multiple level2 grids that would perform well?