Even though I have my issues with Infragistics WebHierarchicalDataGrid control, it has some neat features and I found that with some tweaks you can make it work.
Case in point: Manual Load on Demand. If you have hierarchical data structure, it allows you to retrieve only root level data and then when user clicks “Expand” arrow – get additional data on as needed basis:
This is achieved by handling RowIslandsPopulating grid’s event in which you can run a DB query based on parent row data, then manually create a ContainerGrid object bind it to the data and add it to parent row RowIslands collection:
Protected Sub myGrid_RowIslandsPopulating(ByVal sender As Object, ByVal e As ContainerRowCancelEventArgs) Handles myGrid_.RowIslandsPopulating e.Cancel = True Dim oData as SomeDataType = GetData() Dim oChildGrid As New ContainerGrid() e.Row.RowIslands.Add(oChildGrid) oChildGrid.DataKeyFields = "SOME_ID" oChildGrid.Level = e.Row.Level + 1 oChildGrid.DataSource = oData oChildGrid.DataBind() End Sub
For this approach to work top-level rows need to display “Expand” arrows that user can click. Continue reading 'WebHierarchicalDataGrid: Manual Load on Demand when bound to DataSet'»