2013-08-30 92 views
1

我有一个PivotGrid一个列有以下自定义排序的DevExpress PivotGrid对于其PivotGroupInterval是定制

protected void Page_Load(object sender, EventArgs e) 
    { 
     pivotGrid.RetrieveFields(); 
     pivotGrid.Fields["YEAR"].Area = PivotArea.ColumnArea; 
     pivotGrid.Fields["YEAR"].GroupInterval = PivotGroupInterval.DateYear; 
     pivotGrid.Fields["MONTH"].Area = PivotArea.ColumnArea; 
     pivotGrid.Fields["MONTH"].GroupInterval = PivotGroupInterval.Custom; 
    } 
private void pivotGrid_CustomGroupInterval(object sender, PivotCustomGroupIntervalEventArgs e) 
    { 
     e.GroupValue = ((DateTime)e.Value).ToString("MMM"); 
    } 

所以我的输出显示为 enter image description here 需要注意的是,月份按月的名称,而不是排序相关日期。我如何实现这一目标?

回答

2

我已经想通了自己的答案

protected void Page_Load(object sender, EventArgs e) 
    { 
     pivotGrid.RetrieveFields(); 
     pivotGrid.Fields["YEAR"].Area = PivotArea.ColumnArea; 
     pivotGrid.Fields["YEAR"].GroupInterval = PivotGroupInterval.DateYear; 
     pivotGrid.Fields["MONTH"].Area = PivotArea.ColumnArea; 
     pivotGrid.Fields["MONTH"].GroupInterval = PivotGroupInterval.Custom; 
     pivotGrid.Fields["MONTH"].SortMode = PivotSortMode.Custom; 
    } 
private void pivotGrid_CustomGroupInterval(object sender, PivotCustomGroupIntervalEventArgs e) 
    { 
     e.GroupValue = ((DateTime)e.Value).ToString("MMM"); 
    } 
private void pivotGrid_CustomFieldSort(object sender, PivotGridCustomFieldSortEventArgs e) 
{ 
    if (e.Field.FieldName == "MONTH") 
    { 
       if (e.Value1 == null || e.Value2 == null) return; 
       e.Handled = true; 
       DateTime d1 = Convert.ToDateTime("1 " + e.Value1.ToString() + " 1900"); 
       DateTime d2 = Convert.ToDateTime("1 " + e.Value2.ToString() + " 1900"); 
       if (d1 > d2) 
        e.Result = 1; 
       else if (d1 == d2) 
        e.Result = 0; 
       else 
        e.Result = -1; 
    } 
} 
+0

太感谢你了,我得到了同样的问题,但你的解决方案解决了这个问题谢谢:) – FreedomDeveloper

+0

快乐帮:) – Nisha