aspxgridview export导出数据,把true显示成‘是’

项目原因,数据库中的数据是‘true’还有‘false’,但是在页面上要显示为‘是否’,导出来的时候也是要显示成‘是否’

要在web页面当中显示成‘是否’,只要在gridview的CustomColumnDisplaytext事件中邪代码就可以了,如:

 protected void grid_CustomColumnDisplayText(object sender, ASPxGridViewColumnDisplayTextEventArgs e)
        {//add by huang 用来把数据库中的true转换成是/否
            if (e.Column.FieldName == "是否超期")
            {
                if ((Boolean)e.Value == true)
                {
                    e.DisplayText = "";

                }
                else
                {
                    e.DisplayText = "";

                }
            }
        }

但是单独这样写的话,在页面上显示是没有任何问题的,导出的pdf文件中也会显示成‘是否’,但是在excel中却依然是‘true’还有‘false’,昨天郁闷了一天,今天突然在DEV官网上看到了这样的问题

http://www.devexpress.com/Support/Center/Question/Details/Q509763

要在export控件的RenderBrick事件中写

如:

 protected void Exporter_RenderBrick(object sender, DevExpress.Web.ASPxGridView.Export.ASPxGridViewExportRenderingEventArgs e)
        {//为了在导出的文件中把true显示成'是',如果单独在CustomColumnDisplayText中设置displaytext成‘是’,只能在pdf中正常显示,在excel没效果
            GridViewDataColumn datacolumn = e.Column as GridViewDataColumn;
            if (e.RowType == GridViewRowType.Data && datacolumn != null && datacolumn.FieldName == "是否超期")
            {
                if ((Boolean)e.Value == true)
                {
                    e.Text  = "";
                    e.TextValue = e.Text;
                }
                else
                {
                    e.Text  = "";
                    e.TextValue = e.Text;
                }
            }
        }

这样在两个事件中分别写上之后就完全OK了!

posted @ 2013-08-06 09:43  南修子  阅读(1080)  评论(1编辑  收藏  举报