Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
865
Row sorting within groups based on column value existing
posted

How to sort the state rows within a region by the first occurrence of rainfall as opposed to by state name??

I'm writing in C# using VS2008 unpatched and Infragistics 9.1.20091.2056.

Let's pretend I'm using a WinGrid to display rainfall amounts for states within regions over a changing date range.

The regions - such as Western, Northwest, Eastern, Southeast, etc. - are the categories in the Group By. A hidden category column allows me to group by category while still displaying a "header" row for each region in the grid.

Sorting is turned off for all columns other than the hidden category column which means Category is the only sort button in the sorting band across the top, no additional columns can be dragged there and all additional sorting needs to be handled programmatically.

The states - such as California, Nevada, etc. - belong to a region and are categorized under their region based on the region they are attached to when the rows are added to the grid.

The columns - other than the column containing the region heading and state names - are dates and appear in the grid based on there having been rainfall during the specified date range. Sorting by the user is not allowed.

If a date column appears then it indicates that at least one state in one region has a rainfall value for that date.

My confusion:

How to sort the state names within a region by the first occurrence of rainfall as opposed to by state name??

For example, if California had rain on 10/20/2009 and Nevada had rain on 10/19/2009 then Nevada should appear before California in its region group. How to accomplish this?

BTW I've been reading the posts regarding sorting WinGrids closely and repeatedly but am still confused so please give it to me simply and with examples if possible. :-)

Thanks.

Allen

Parents
  • 469350
    Suggested Answer
    Offline posted

    Hi Allen,

    In order to group the row, the grid must first sort the rows by region. This is neccessary and you can't change that, because the grid needs to sort the rows by region in order to loop through and group rows with the same values.

    But rows that have the same region are placed in no particular order or in the original order in which they appeared in the grid.

    One easy way to handle this would be to enable sorting on the rainfail column and sort it. But, you obviously don't want to do that.

    So what you need to do is set it up so that the Region columns sorts by both the region (first) and the rainfall (second). As long as the Region sorting takes precedence, this won't interfere with the grouping. So all you have to do is use a SortComparer on the Region column that sorts based on two columns instead of one.

Reply Children