DevExpress.XtraGrid 导出文本的bug

DevExpress.XtraGrid.GridControl有多个ExportToXXX的方法,提供多种格式的导出,极大节省了人力。如果数据集里面有bool的数据,Grid就会显示成checkbox的形式,导出成pdf、excel当然是没有问题。但导出txt和csv格式时,对应bool字段的值就会空白,没有任何数据导出。这个bug可以在XtraGrid的demo里面看到。导出数据空白的问题在官方资料中目前没有找到资料,只好自己做了。

 以下是导出txt的代码,csv也是稍加修改即可实现。

ExpandedBlockStart.gif 代码
     private   void  ExportGridToTxt(GridView view,  string  path,  char  spliter)
        {
            
if  (view  !=   null )
            {
                StreamWriter sw 
=   null ;
                
try
                {
                    sw 
=   new  StreamWriter(path,  false , Encoding.Default);
                    StringBuilder sb 
=   new  StringBuilder();

                    
for  ( int  i  =   0 ; i  <  view.Columns.Count; i ++ )
                    {
                        sb.Append(view.Columns[i].Caption 
+  spliter);
                    }
                    sb.AppendLine();

                    
for  ( int  i  =   0 ; i  <  view.RowCount; i ++ )
                    {
                        DataRow dr 
=  view.GetDataRow(i);
                        
for  ( int  j  =   0 ; j  <  view.Columns.Count; j ++ )
                        {
                            GridColumn col 
=  view.Columns[j];
                            
if  (col.ColumnType  ==   typeof ( bool ))
                            {
                                
bool  val  =  ( bool )(view.GetRowCellValue(i, col));
                                sb.Append((
bool )val  ?   " Y "  :  " N " );
                            }
                            
else
                            {
                                
string  displayText  =  view.GetRowCellDisplayText(i, col);
                                sb.Append(displayText);
                            }

                            
if  (j  !=  view.Columns.Count  -   1 )
                            {
                                sb.Append(spliter);
                            }
                            
else
                            {
                                sb.AppendLine();
                            }
                        }
                    }

                    sw.Write(sb.ToString());
                    sw.Flush();
                }
                
finally
                {
                    
if  (sw  !=   null )
                    {
                        sw.Close();
                    }
                }
            }
            
        }

 

 

我装的版本是9.1

转载于:https://www.cnblogs.com/Byeah/archive/2010/01/05/1639735.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值