I have been using WebHierarchicalDataGrid with manual load on demand bands with a pretty good success until I hit this snag.
The WHDG has correctly displayed HTML fields before, but this time a column with HTML data (an HREF link to be precise) is needed as one of the grid’s DataKeyFields to provide uniqueness of the row:
The problem with this setup is that first attempt to expand a parent row to display children resulted in displaying garbage text in the grid:
And attempt to expand another row would throw a JavaScript error:
Error: Sys.ArgumentException: Cannot deserialize. The data does not correspond to valid JSON. Parameter name: data
After some research the culprit was found. Looking at HTML HREF element in question:
<a style=”color:blue” href=”FI_DownLoadFileAttachment.aspx?file_id=222″>METRIC_GENERATOR_SETUP_SCRIPT.sql</a>
it contains colon “:” and double-quote ” – main punctuation signs of JSON structure. The solution: Replace them! Double quotes with single quotes, inline styles with CSS classes, e.g.
<a class=’cellLink’ href=’FI_DownLoadFileAttachment.aspx?file_id=222′>METRIC_GENERATOR_SETUP_SCRIPT.sql</a>
Replacement can be done any place convenient/available to you: backend DB or code. After that – row expanding works with no problems.