注:
Repeter:
当在Repeter:的ItemTemplate中有循环的按钮以及一些控件时,
在导出之前,应当禁用掉,否则会出现错误!
解决方法 :利用循环Repeater1来找出要禁用掉的按钮
for (int i = 0; i < Repeater1.Items.Count; i++)
{
if (i == 0){
//这是Repeater1的HeaderTemplate里面的按钮禁用方式
((CheckBox)Repeater1.Controls[0].FindControl("chkAllss")).Visible = false;
}
//这是Repeater1的ItemTemplate里面按钮禁用方式
LinkButton btn = (Repeater1.Items[i].FindControl("Auditing") as LinkButton);
btn.Visible = false;
((CheckBox)Repeater1.Items[i].FindControl("chkOne")).Visible = false;
}
GridView:
GridView就简单多了,只要在导出之前把CLOUMN里面的按钮禁用就OK了
比如:GridView.Columns[8].Visible = false;
在导出的同时,有时候也要设置下格式,像22222222222,3333333333333,这些数据在导入EXCEL表格中
就会发生改变,变成22D+1,之类的,
要解决也很简单
首先repeter:
像这样些: <td style="vnd.ms-excel.numberformat:@">设置样式为文本格式
而GridView
像这样:
在页面加载GridView数据的同时触发一个OnRowDataBound 的事件
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[2].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
}
}
设置下就OK了,
在导入数据的同时,设置导入的格式:比如:
支持的格式。下面就列出常用的一些格式:
1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 数字:vnd.ms-excel.numberformat:#,##0.00
4) 货币:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%
具体导出代码如下:
/// <summary>
/// 导出Excel函数
/// </summary>
/// <param name="FileType">application/ms-excel</param>
/// <param name="FileName">导出的表名</param>
private void Export(string FileType, string FileName)
{
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
this.EnableViewState = false;
//这里绑定数据,在禁用掉按钮就OK了
RepeterProduct.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
希望我的这些经验可以对你们有用,给点分吧