Hello,
I have a UltraWinGrid which has at least one GroupBy column (Outlook Group By). I want to select all GroupByRows and Data rows on the grid (Even the ones invisible. I have a function to export the selected rows to excel). I have problems with selecting ChildBand's (lower level GroupByRows and Data rows).
I can select the first level GroupByRows by this.
theUltraGrid.Selected.Rows.AddRange(theUltraGrid.Rows.All)
However, I get 'NullReferenceException' when I try to add ChildBand's rows to SelectedRows.
I am doing something like this. (In the real code I do it recursively)
theUltraGrid.Selected.Rows.AddRange(theUltraGrid.Rows(0).ChildBands(0).Rows.All)
I get the following exception.
{"Object reference not set to an instance of an object."} at Infragistics.Win.UltraWinGrid.Selected.SelectionPositionSortComparer.CompareRow(UltraGridRow rowX, UltraGridRow rowY) ...
I tried it in several different ways but I always get the same exception. I am wondering if my code has problems or the way I do is completely wrong. Please give me advice.
Thanks!
Hi Mike,
I have similar issue to select all rows under GroupByRow in an UltraWinGrid. My UltraWinGrid contains bunch of GroupByRows. If I select any GroupByRow,
it should select all the respective datarows. Here is my sample code:
foreach(UltraGridRow row in this.Grid.Selected.Rows)
{
if (row is UltraGridGroupByRow)
UltraGridGroupByRow groupByRow = row as UltraGridGroupByRow;
RowsCollection rows = groupByRow.Rows;
Grid.Selected.Rows.AddRange((UltraGridRow[])rows.All); //Throwing NullReferenceException
}
Could please help me to resolve this and let me know if you need more information. Thank you.
Hi
could you post a sample code for this?
Hello Mike,
Thanks for the reply! I will try to figure out what I can do to make my functionalities work with your advice! Probably I will think of something using UltraGridGroupByRow as you taught me!
Thanks alot!!!
There are two problems here.
First, you cannot select rows on more than one level at a time. This means you cannot select a GroupByRow and one of it's child rows at once. If you select a child rows, the GroupByRow will be de-selected.
I think the second issue is with how you are getting the child rows. If the grid is grouped, then theUltraGrid.Rows(0) will be a GroupByRow. A GroupByRow will never have a ChildBands collection. ChildBands only exist on data rows. What you need to do is cast the row into an UltraGridGroupByRow and use the Rows collection to get it's child rows.