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了!

上一篇:TypeScript 素描 - 接口


下一篇:iOS-打电话、发短信、发邮件、打开浏览器