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 →
