【发布时间】:2017-08-19 17:08:32
【问题描述】:
GridView grdExgratia = new GridView();
DataSet ds = (DataSet)Session["DataSet"];
try
{
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
grdExgratia.DataSource = ds;
grdExgratia.DataBind();
for (int i = 0; i < grdExgratia.Rows.Count; i++)
{
DataGridItem dataItem = dgExgratia.Items[i];
CheckBox chkApprove = (CheckBox)dataItem.FindControl("chkApprove");
Label lblB_FLAG = (Label)dataItem.FindControl("lblB_FLAG");
if (chkApprove.Enabled== true)
{
lblB_FLAG.Text = "Paid";
}
else
{
}
}
Response.Clear();
Response.Buffer = true;
Response.ClearContent();
Response.ClearHeaders();
StringWriter strwritter = new StringWriter();
HtmlTextWriter htmltextwrtter = new HtmlTextWriter(strwritter);
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename= Exgratia_Employees.xls");
grdExgratia.RenderControl(htmltextwrtter);
Response.Write(strwritter.ToString());
Response.End();
}
}
以上是我用于导出到 excel 的代码。但是在导出数据时,最后一列是 B_FLAG,它是数据库中的 BIT 数据类型,它被转换为复选框。在网格视图中显示数据时,它呈现为 TRUE 和 FALSE。谁能帮我将文本值导出到excel而不是复选框。
【问题讨论】:
-
检查控件的名称
-
@reds 我检查了仍然无法正常工作。你能建议任何其他方式吗?
-
您的 StringWriter strwritter 与您的 for 循环没有任何关系,您也没有任何 StringBuilder ..
标签: c# asp.net sql-server-2008 datagridview