Hi,
I have a hierarchical webgrid that is set up as synchronous load-on-demand with paging enabled. If I select a page that's not page 1 and expand a parent row to show it's children, the children shown are the children of the parent row from page 1.
I'm using the InitializeRow event to format hyperlinks in the child rows, and when I step into the code, I see the parent key is the key from the row on Page 1.
So the problem seems to be that the paging is updating the parent rows but not the child rows. Has anyone seen this? Is this a bug in the control or is there a property I need to set.
Thanks,
- Paul
I am actually having this same problem, the description given sounds fine to me.
Did you get a resolution?
I can certainly provide markup if it is needed, but I think the gist of the problem has been stated. Are there settings that need to be set in order for the grid to retrieve the proper child rows after ajax paging has fired?
I was having the same issue, and reported it to Infragistics. They presented me the solution very quickly. The problem is that you have to have the data key set on the band. See the sample below:
protected void uwgTest_InitializeLayout(object sender, Infragistics.WebUI.UltraWebGrid.LayoutEventArgs e) { uwgTest.DisplayLayout.Bands[0].DataKeyField = "Cust_ID"; }
More info :<http://help.infragistics.com/Help/NetAdvantage/NET/2007.3/CLR2.0/html/WebGrid_Using_XML_Load_On_Demand.html>
This might be possible to include multiple fields with the dataKeyField, but I don't think I have ever tried it.
One way that I know will work if you can't figure that out is to simply build a combined key in your underlying data source in all of the tables that will be apart of the hierarchical grid. Then simply set the DataKeyField to this one column.
I am having this same issue, and I can see the fix being proposed (setting the DataKeyField). but what if my join from the parent to child is multiple fields
I need to do something like this:
this.iwgInvoices.DisplayLayout.Bands[0].DataKeyField = "VNDID,VNDSFX,INVNO,INVST,CHECK";