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
275
Bug in Group by
posted

Hi,

I think there is a serious bug in the group by functionality. I am using 2010 volume 1 with the latest service pack release (2027).

Basically, the sorting is completely buggered if you group by two columns (one string and one date time).

Use the following code to create a datatable and assign it to the grid. Group by the String column and then the DateTime column and see what happens. There are loads of rows for each group even though there should be one for each string and DateTime.

 

               if (_dataLarge == null)
                {
                    _dataLarge = new DataTable { Locale = CultureInfo.InvariantCulture };
                    _dataLarge.Columns.Add("Counter", typeof(string));
                    _dataLarge.Columns.Add("Int", typeof(int));
                    _dataLarge.Columns.Add("Group", typeof(double));
                    _dataLarge.Columns.Add("String", typeof(string));
                    _dataLarge.Columns.Add("DateTime", typeof(DateTime));

                    Random random = new Random();

                    string[] str = new[] { "abcdefghijklm", "nopqrstuvwxyz" };

                    for (int i = 0; i < 100000; i++)
                    {
                       _dataLarge.Rows.Add(i.ToString(CultureInfo.InvariantCulture), random.Next(1, 10000000), random.Next(0, 9), str[i%2], DateTime.Now.AddDays(random.Next(0, 10)));
                    }
                }

 

Here are the properties setup on the grid:

 

appearance4.BackColor = System.Drawing.SystemColors.Window;
            appearance4.BorderColor = System.Drawing.SystemColors.InactiveCaption;
            resources.ApplyResources(appearance4.FontData, "appearance4.FontData");
            resources.ApplyResources(appearance4, "appearance4");
            appearance4.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Appearance = appearance4;
            this._performanceResizeStandardGrid.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
            this._performanceResizeStandardGrid.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False;
            appearance1.BackColor = System.Drawing.SystemColors.ActiveBorder;
            appearance1.BackColor2 = System.Drawing.SystemColors.ControlDark;
            appearance1.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical;
            appearance1.BorderColor = System.Drawing.SystemColors.Window;
            resources.ApplyResources(appearance1.FontData, "appearance1.FontData");
            resources.ApplyResources(appearance1, "appearance1");
            appearance1.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.GroupByBox.Appearance = appearance1;
            appearance2.ForeColor = System.Drawing.SystemColors.GrayText;
            resources.ApplyResources(appearance2.FontData, "appearance2.FontData");
            resources.ApplyResources(appearance2, "appearance2");
            appearance2.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.GroupByBox.BandLabelAppearance = appearance2;
            this._performanceResizeStandardGrid.DisplayLayout.GroupByBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
            appearance3.BackColor = System.Drawing.SystemColors.ControlLightLight;
            appearance3.BackColor2 = System.Drawing.SystemColors.Control;
            appearance3.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
            appearance3.ForeColor = System.Drawing.SystemColors.GrayText;
            resources.ApplyResources(appearance3.FontData, "appearance3.FontData");
            resources.ApplyResources(appearance3, "appearance3");
            appearance3.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.GroupByBox.PromptAppearance = appearance3;
            this._performanceResizeStandardGrid.DisplayLayout.MaxColScrollRegions = 1;
            this._performanceResizeStandardGrid.DisplayLayout.MaxRowScrollRegions = 1;
            appearance12.BackColor = System.Drawing.SystemColors.Window;
            appearance12.ForeColor = System.Drawing.SystemColors.ControlText;
            resources.ApplyResources(appearance12.FontData, "appearance12.FontData");
            resources.ApplyResources(appearance12, "appearance12");
            appearance12.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Override.ActiveCellAppearance = appearance12;
            appearance7.BackColor = System.Drawing.SystemColors.Highlight;
            appearance7.ForeColor = System.Drawing.SystemColors.HighlightText;
            resources.ApplyResources(appearance7.FontData, "appearance7.FontData");
            resources.ApplyResources(appearance7, "appearance7");
            appearance7.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Override.ActiveRowAppearance = appearance7;
            this._performanceResizeStandardGrid.DisplayLayout.Override.BorderStyleCell = Infragistics.Win.UIElementBorderStyle.Dotted;
            this._performanceResizeStandardGrid.DisplayLayout.Override.BorderStyleRow = Infragistics.Win.UIElementBorderStyle.Dotted;
            appearance6.BackColor = System.Drawing.SystemColors.Window;
            resources.ApplyResources(appearance6.FontData, "appearance6.FontData");
            resources.ApplyResources(appearance6, "appearance6");
            appearance6.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Override.CardAreaAppearance = appearance6;
            appearance5.BorderColor = System.Drawing.Color.Silver;
            appearance5.TextTrimming = Infragistics.Win.TextTrimming.EllipsisCharacter;
            resources.ApplyResources(appearance5.FontData, "appearance5.FontData");
            resources.ApplyResources(appearance5, "appearance5");
            appearance5.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Override.CellAppearance = appearance5;
            this._performanceResizeStandardGrid.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.EditAndSelectText;
            this._performanceResizeStandardGrid.DisplayLayout.Override.CellPadding = 0;
            appearance9.BackColor = System.Drawing.SystemColors.Control;
            appearance9.BackColor2 = System.Drawing.SystemColors.ControlDark;
            appearance9.BackGradientAlignment = Infragistics.Win.GradientAlignment.Element;
            appearance9.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
            appearance9.BorderColor = System.Drawing.SystemColors.Window;
            resources.ApplyResources(appearance9.FontData, "appearance9.FontData");
            resources.ApplyResources(appearance9, "appearance9");
            appearance9.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Override.GroupByRowAppearance = appearance9;
            resources.ApplyResources(appearance11, "appearance11");
            resources.ApplyResources(appearance11.FontData, "appearance11.FontData");
            appearance11.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Override.HeaderAppearance = appearance11;
            this._performanceResizeStandardGrid.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti;
            this._performanceResizeStandardGrid.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand;
            appearance10.BackColor = System.Drawing.SystemColors.Window;
            appearance10.BorderColor = System.Drawing.Color.Silver;
            resources.ApplyResources(appearance10.FontData, "appearance10.FontData");
            resources.ApplyResources(appearance10, "appearance10");
            appearance10.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Override.RowAppearance = appearance10;
            this._performanceResizeStandardGrid.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
            appearance8.BackColor = System.Drawing.SystemColors.ControlLight;
            resources.ApplyResources(appearance8.FontData, "appearance8.FontData");
            resources.ApplyResources(appearance8, "appearance8");
            appearance8.ForceApplyResources = "FontData|";
            this._performanceResizeStandardGrid.DisplayLayout.Override.TemplateAddRowAppearance = appearance8;
            this._performanceResizeStandardGrid.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill;
            this._performanceResizeStandardGrid.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate;
            this._performanceResizeStandardGrid.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy;
            resources.ApplyResources(this._performanceResizeStandardGrid, "_performanceResizeStandardGrid");
            this._performanceResizeStandardGrid.Name = "_performanceResizeStandardGrid";