如何在ultragrid中的同一行中设置摘要页脚标题行和汇总值

时间:2012-10-24 11:11:10

标签: c# infragistics ultrawingrid

我正在为我的Windows窗体应用程序评估UltraGrid控件。我观察到摘要行是单独显示的,从公式获得的值显示在一个单独的行上。

有谁知道如何合并这两行 对于例如 SubTotal value1 value2 value3

谢谢,
维杰

1 个答案:

答案 0 :(得分:0)

我不认为这是可能的。一个问题可能是选择在哪个列下放置标题文本,如果用户移动列怎么办?如果标题跨越多个列怎么办?

可能的解决方法是定义自定义摘要并将空字符串设置为计算的返回值,然后使用DisplayFormat属性设置要用作标题的文本。

SummarySettings ss = grid.DisplayLayout.Bands[0].Summaries.Add("SummaryKeyName", 
                     SummaryType.Custom, new FakeCaptionSummary(), 
                     grid.DisplayLayout.Bands[0].Columns["ColumnUsedForCaption"],  
                     SummaryPosition.UseSummaryPositionColumn, 
                     grid.DisplayLayout.Bands[0].Columns["ColumnUsedForCaption"]);
ss.DisplayFormat = "Subtotals";

然后构建一个实现ICustomSummaryCalculator接口

的类
internal class FakeCaptionSummary : ICustomSummaryCalculator
{
    public FakeCaptionSummary()
    {
         // Empty constructor
    }
    // Called at the start of the custom summary calculation
    public void BeginCustomSummary(SummarySettings summarySettings, RowsCollection rows)
    {}
    // Called for each row in band of this summary
    public void AggregateCustomSummary(SummarySettings summarySettings, UltraGridRow row)
    {}
    // Called to get the return value to put in the SummaryRpw at the specified column
    public object EndCustomSummary(SummarySettings summarySettings, RowsCollection rows)
    {
        return "";
    }
}

请注意,此解决方案具有我在本答案开头时概述的所有缺点。