XAF 如何自定义PivotGrid单元格显示文本?

using  System;
using  System.Collections.Generic;

using  DevExpress.ExpressApp;
using  DevExpress.XtraPivotGrid;
using  DevExpress.ExpressApp.PivotGrid.Win;
using  DevExpress.ExpressApp.Model;

namespace  DXExample.Module
{
    
public   class  Q326025Controller : ViewController < ListView >
    {
        
private   const   string  PivotGridListEditorKey  =   " PivotGridListEditor " ;

        
private   void  Q326025Controller_FieldValueDisplayText( object  sender, PivotFieldDisplayTextEventArgs e)
        {
            
string  displayText  =  GetDisplayText(e.Field, e.Value);
            
if  ( ! string .IsNullOrEmpty(displayText))
            {
                e.DisplayText 
=  displayText;
            }
        }
        
private   void  Q326025Controller_CustomCellDisplayText( object  sender, PivotCellDisplayTextEventArgs e)
        {
            
string  displayText  =  GetDisplayText(e.DataField, e.Value);
            
if  ( ! string .IsNullOrEmpty(displayText))
            {
                e.DisplayText 
=  displayText;
            }
            
if (e.Value  !=   null )
            {
                
switch  ( int .Parse(e.Value.ToString()))
                {
                    
case   - 1 :
                        e.DisplayText 
=   " 正常班 " ;
                        
break ;
                    
case   - 2 :
                        e.DisplayText 
=   " 事假 " ;
                        
break ;
                }
            }
        }

        
private  PivotGridListEditor PivotGridListEditor
        {
            
get  {  return  View.Editor  as  PivotGridListEditor; }
        }

        
protected   virtual   string  GetDisplayText(PivotGridFieldBase field,  object  value)
        {
            
if  (field  !=   null   &&  value  !=   null   &&  value.GetType()  ==   typeof ( bool ))
            {
                IModelMember modelMember 
=  View.Model.ModelClass.FindMember(field.FieldName);
                
if  (modelMember  !=   null )
                {
                    
if  (( bool )value)
                    {
                        
if  ( ! string .IsNullOrEmpty(modelMember.CaptionForTrue))
                        {
                            
return  modelMember.CaptionForTrue;
                        }
                    }
                    
else
                    {
                        
if  ( ! string .IsNullOrEmpty(modelMember.CaptionForFalse))
                        {
                            
return  modelMember.CaptionForFalse;
                        }
                    }
                }
            }
            
return   null ;
        }
        
protected   override   void  OnViewChanging(View view)
        {
            
base .OnViewChanging(view);
            Active.RemoveItem(PivotGridListEditorKey);
            
if  (view  is  ListView)
            {
                Active[PivotGridListEditorKey] 
=  ((ListView)view).Editor  is  PivotGridListEditor;
            }
        }
        
protected   override   void  OnViewControlsCreated()
        {
            
base .OnViewControlsCreated();
            ((PivotGridControl)(PivotGridListEditor.PivotGridControl)).CustomCellDisplayText 
+=   new
    PivotCellDisplayTextEventHandler(Q326025Controller_CustomCellDisplayText);
            ((PivotGridControl)(PivotGridListEditor.PivotGridControl)).FieldValueDisplayText 
+=   new
    PivotFieldDisplayTextEventHandler(Q326025Controller_FieldValueDisplayText);
        }
        
protected   override   void  OnDeactivated()
        {
            ((PivotGridControl)(PivotGridListEditor.PivotGridControl)).CustomCellDisplayText 
-=   new
    PivotCellDisplayTextEventHandler(Q326025Controller_CustomCellDisplayText);
            ((PivotGridControl)(PivotGridListEditor.PivotGridControl)).FieldValueDisplayText 
-=   new
    PivotFieldDisplayTextEventHandler(Q326025Controller_FieldValueDisplayText);
            
base .OnDeactivated();
        }
    }

} 

 

 

 

转载于:https://www.cnblogs.com/Tonyyang/archive/2011/07/24/2115226.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值