DevExpress XtraGrid 自定义 Bool型 列 Excel 的导出值

本文介绍了如何解决DevExpress XtraGrid在导出到Excel时,Bool型列显示为复选框图片的问题。通过设置repositoryItemCheckEdit1的ExportMode为DisplayText,并自定义显示值,可以将导出的列内容更改为文本形式。

我们在使用DevExpress 的 gridView.ExporttoXls(filename)的时候会发现对于bool型的可编辑列导出的结果是一个checkbox的图片:

如果想要改掉它:

1.加一个repositoryItemCheckEdit1并把它导出模式设为显示值

 this.repositoryItemCheckEdit1.ExportMode = DevExpress.XtraEditors.Repository.ExportMode.DisplayText;

 

// 
            // gridView1
            // 
            this.gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
            this.colColumn1,
            this.colColumn2});
            this.gridView1.GridControl = this.gridControl1;
            this.gridView1.Name = "gridView1";
            this.gridView1.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.gridView1_CustomColumnDisplayText);
            // 
            // colColumn1
            // 
            this.colColumn1.Caption = "Column1";
            this.colColumn1.FieldName = "Column1";
            this.colColumn1.Name = "colColumn1";
            this.colColumn1.Visible = true;
            this.colColumn1.VisibleIndex = 0;
            // 
            // colColumn2
            // 
            this.colColumn2.Caption = "Column2";
            this.colColumn2.ColumnEdit = this.repositoryItemCheckEdit1;
            this.colColumn2.FieldName = "Column2";
            this.colColumn2.Name = "colColumn2";
            this.colColumn2.Visible = true;
            this.colColumn2.VisibleIndex = 1;
            // 
            // repositoryItemCheckEdit1
            // 
            this.repositoryItemCheckEdit1.AutoHeight = false;
            this.repositoryItemCheckEdit1.ExportMode = DevExpress.XtraEditors.Repository.ExportMode.DisplayText;
            this.repositoryItemCheckEdit1.Name = "repositoryItemCheckEdit1";


2.自定义显示值:

 private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) {
            if(e.Column.FieldName == "Column2") {
                if(repositoryItemCheckEdit1.ValueChecked.Equals(e.Value))
                    e.DisplayText = "Yes";
                else if(repositoryItemCheckEdit1.ValueUnchecked.Equals(e.Value))
                    e.DisplayText = "No";
                else
                    e.DisplayText = "N/A";
            }
        }


3.再调用其方法导出的就改回来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值