2

显示 UltraGrid 绑定的行数的最佳方法是什么?

我希望能够做到,this.UltraGrid.DataSource = myCustomObject;

并且,网格应该显示数据以及行数。

我试图编写一个带有超网格和状态栏的自定义控件。触发“InitializeRow”事件时,使用 rowCount 更新状态栏。这会给我我想要的,但这是非常低效的。

我尝试过其他事件,例如“InitializeLayout”、“InitializeRowsCollection”、“Enter”事件,但是当数据源更改时,这些事件不会被触发。

建议?

4

2 回答 2

5

通过使用超网格的 SummaryDisplayArea 功能,我找到了一种更好的方法。 http://help.infragistics.com/Help/NetAdvantage/WinForms/2011.1/CLR2.0/html/Infragistics2.Win.UltraWinGrid.v11.1~Infragistics.Win.UltraWinGrid.UltraGridOverride~SummaryDisplayArea.html

在 InitializeLayout 事件我有这样的事情

        e.Layout.Override.AllowRowSummaries = AllowRowSummaries.True;

        UltraGridColumn columnToSummarize = e.Layout.Bands[0].Columns[0];
        SummarySettings summary = e.Layout.Bands[0].Summaries.Add("Count", SummaryType.Count, columnToSummarize);
        summary.DisplayFormat = "Number of Rows: {0:N0}";

        e.Layout.Override.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
        e.Layout.Override.SummaryDisplayArea |= SummaryDisplayAreas.GroupByRowsFooter;
        e.Layout.Override.SummaryDisplayArea |= SummaryDisplayAreas.InGroupByRows;

        summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed | SummaryDisplayAreas.GroupByRowsFooter;
        e.Layout.Override.GroupBySummaryDisplayStyle = GroupBySummaryDisplayStyle.SummaryCells;

        e.Layout.Override.SummaryFooterAppearance.FontData.Bold = DefaultableBoolean.True;
        e.Layout.Override.SummaryFooterCaptionVisible = DefaultableBoolean.False;
于 2011-11-01T17:38:28.203 回答
1

如果您使用 aBindingSource您可能会喜欢BindingNavigator

您可以从工具箱(数据选项卡)将其拖到表单上并设置其BindingSource属性。如果您愿意,您可以简单地删除添加和删除按钮,它看起来像这样:

在此处输入图像描述

于 2011-11-10T22:07:05.343 回答