I had high hopes for Infragistics Web Hierarchical Data Grid control. Especially in NetAdvantage 10.3 release (current as of this post). Control from Aikido Framework, build on AJAX from ground up, lightweight and fast – I was really excited.
Unfortunately it didn’t turned out exactly as I expected.
First – WHDG cannot bind to a flat ADO.NET data table. Why, you ask, I need to bind flat data to an hierarchical control? Well, it’s the only grid in Aikido that supports OutlookGroupBy mode and I need to be able to group my flat data. But attempt to bind WHDG to DataTable throws an enigmatic InvalidOperationException without giving any clue as why. There’s a workaround – to create a dummy DataSet, add the table to it and bind control to the dataset – but that’s just silly. And that’s not the worst of it.
Pay-to-play behaviors is a cool way to save resources when you don’t need a feature, unfortunately behaviors don’t play nice together. Enable Paging and Grouping and with grid data spanning multiple pages – drag a column to a Group By area. Expected behavior would be all Group-by rows to show on a single page (several pages maybe, if actual number of groups is large). But instead number of pages remains the same, grid displays 1-2 group records per page with record count limited to page size.
Another unpleasant surprise – ColumnMoving behavior is not available in WHDG which is strange since it’s available in WebDataGrid upon which WHDG is based. Not available in Smart Tag/Design mode that is. If you go to ASPX page markup, it’s still available via Intellisence and after you add it, it’s available in grid’s property pages.
And it works! Until you enable Column Grouping that is. After that Column Moving is pretty much ignored.
This is really frustrating, especially considering that in legacy slow bloated UltraWebGrid paging, grouping and column moving work quite nicely together. Hopefully Infragistics will update WHDG soon, until then it’s not usable in real-life scenarios.
UPDATE: Infragistics has responded to this post, here you can find some interesting insights why some decisions were made about WHDG functionality.
UPDATE 2, 8/28/2012: As of version 12.1 WHDG still does not support normal grouping with paging, but there’s a workaround. Kiril from Infragistics described a way to simulate grouping via WHDG hierarchy. Technically it’s not a “real” grid group but a parent record instead. When you expand it – it displays “details” which are really child records. This way we have best of both worlds – performance via WHDG load on demand and grouping the way we want.