62,046
社区成员
发帖
与我相关
我的任务
分享
Response.Clear();
Response.Buffer = true;
Response.Charset = "utf-8";
DateTime dt = DateTime.Now;//给导出后的Excel表命名,结合表的用途以及系统时间来命名
string filename = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Second.ToString();
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
//Panel1.RenderControl(oHtmlTextWriter)
this.RpBook.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
public static void ToExcel1(DataTable Dt, string FileName)
{
System.Web.UI.WebControls.GridView dgExport = null;
//当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
//IO用于导出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null;
if (Dt != null)
{
//设置编码和附件格式
//System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)作用是方式中文文件名乱码
curContext.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
curContext.Response.ContentType = "application nd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "GB2312";
//导出Excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
//为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的GridView
dgExport = new System.Web.UI.WebControls.GridView();
dgExport.DataSource = Dt.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind();
foreach (GridViewRow dg in dgExport.Rows)
{
dg.Cells[2].Attributes.Add("style", "vnd.ms-excel.numberformat: @;");
int bb = 6;
for (bb = 6; bb <= 12; bb++)
{
if (Convert.ToDecimal(dg.Cells[bb].Text.ToString()) < 0)
{
dg.Cells[bb].Attributes.Add("style", "color:red;vnd.ms-excel.numberformat: #,##0.00;");
}
else
{
dg.Cells[bb].Attributes.Add("style", "vnd.ms-excel.numberformat: #,##0.00;");
}
/* dg.Cells[6].Attributes.Add("style", "vnd.ms-excel.numberformat: #,##0.00;");
dg.Cells[7].Attributes.Add("style", "vnd.ms-excel.numberformat: #,##0.00;");
dg.Cells[8].Attributes.Add("style", "vnd.ms-excel.numberformat: #,##0.00;");
dg.Cells[9].Attributes.Add("style", "vnd.ms-excel.numberformat: #,##0.00;");
dg.Cells[10].Attributes.Add("style", "vnd.ms-excel.numberformat: #,##0.00;");
dg.Cells[11].Attributes.Add("style", "vnd.ms-excel.numberformat: #,##0.00;");*/
}
//dg.Cells[5].Attributes.Add("style", "vnd.ms-excel.numberformat: #,##0.00%;");
//color:red;font-size:12pt; 用来设置颜色
//<td style=”vnd.ms-excel.numberformat:@”>
// dg.Cells[6].Attributes.Add("style", "vnd.ms-excel.numberformat: @;");
// dg.Cells[8].Attributes.Add("style", "vnd.ms-excel.numberformat: @;");
}
//下载到客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}
to shoppo0505 ,用这个试下UpdatePanel1.Update();
UpdatePanel5.Update();
这类代码来指定哪一个 Panel 需要局部刷新,所以其实在设计时是不需要在 Triggers 里边来指定哪些控件的刷新造成相应的 UpdatePanel 也跟着刷新的。你完全可以用你的 asp.net 代码来动态地、灵活地指定。
并且这个技术,跟下载没有关系。
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
<asp:PostBackTrigger ControlID="but_zhcx" />
<asp:PostBackTrigger ControlID="Button2" />
</Triggers>
[/quote]
我试过加trigger,但是没有成功啊。
你这里Button1, but_zhcx,Button2都是按钮控件吧?是不是都有文件导出的代码?这3个按钮之间,本身没有什么联系吧?
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
<asp:PostBackTrigger ControlID="but_zhcx" />
<asp:PostBackTrigger ControlID="Button2" />
</Triggers>
function Sys$WebForms$PageRequestManager$_endPostBack(error, executor, data) {
if (this._request === executor.get_webRequest()) {
this._processingRequest = false;
this._additionalInput = null;
this._request = null;
}
var handler = this._get_eventHandlerList().getHandler("endRequest");
var errorHandled = false;
if (handler) {
var eventArgs = new Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, executor);
handler(this, eventArgs);
errorHandled = eventArgs.get_errorHandled();
}
if (error && !errorHandled) {
throw error;
}
}
这里出错