zoukankan      html  css  js  c++  java
  • 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();
            }
        }

    } 

  • 相关阅读:
    Web前端开发最佳实践系列文章汇总
    站点的安全防范都是后端的职责?非也,Web前端安全同样不可忽视
    Web前端开发最佳实践(13):前端页面卡顿?可能是DOM操作惹的祸,你需要优化代码
    Web前端开发最佳实践(12):JavaScript代码中有大量写死的配置数据?这些数据难以维护,你需要合理组织这些数据
    Web前端开发最佳实践(10):JavaScript代码不好读,不好维护?你需要改变写代码的习惯
    Web前端开发最佳实践(11):使用更严格的JavaScript编码方式,提高代码质量
    Web前端开发最佳实践(9):CSS代码太太乱,重复代码太多?你需要精简CSS代码
    Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些
    Web前端开发最佳实践(7):使用合理的技术方案来构建小图标
    愚工钻孔机如何做到世界第一:227版本超多改进(2)
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/2115226.html
Copyright © 2011-2022 走看看