如何把DataGrid里的数据导出到excel文件中去?
请高手指教……
请高手指教……
解决方案 »
- repeater绑定问题
- Asp.Net返回按钮
- .net定时程序求救
- 能不能修改<span>的默认显示时间,我认为它默认的显示时间太短了
- 有关投票系统问题/选项显示问题
- 我的VS有問題啊!!!!!從工具箱裡拉出來的 按鈕、文本框....等等在運行後都看不見啊!!!!!
- ◇关于URL中传递参数的问题,请高手解答◇
- DataSet 中有若干个DataTable,怎么合成一个
- 数据库连接问题
- 求上下无间断滚动代码,要求配合着repeater 使用。。
- 关于Active Directory的问题,求救大家
- 请问session在SQLServer状态下,.net 2003 和 .net 2005 的程序可不可以共享Session
{
HttpContext.Current.Response.Charset ="UTF-8";
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType ="application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+""+FileName+".xls");
ctl.Page.EnableViewState =false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
http://www.aspxboy.com/private/showthread.asp?threadid=341
报错信息是:
类型“ImageButton”的控件“DataGrid1__ctl2_ImageButton1”必须放在具有 runat=server 的窗体标记内。
这是什么问题啊?我的控件已经在runat = server的窗体标记内了啊。
{
HttpContext.Current.Response.Charset ="UTF-8";
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType ="application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+""+FileName+".xls");
ctl.Page.EnableViewState =false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
ClearControls(ctl);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}/// <summary>
/// 清除控件中的所有控件,以便导出Excel
/// </summary>
/// <param name="control"></param>
private void ClearControls(Control control)
{
for (int i = control.Controls.Count - 1; i >= 0; i--)
{
ClearControls(control.Controls[i]);
} if (!(control is TableCell))
{
if (control.GetType().GetProperty("SelectedItem") != null)
{
LiteralControl literal = new LiteralControl();
control.Parent.Controls.Add(literal);
try
{
literal.Text = (string)control.GetType().GetProperty("SelectedItem").GetValue(control, null);
}
catch
{
}
control.Parent.Controls.Remove(control);
}
else if (control.GetType().GetProperty("Text") != null)
{
LiteralControl literal = new LiteralControl();
control.Parent.Controls.Add(literal);
literal.Text = (string)control.GetType().GetProperty("Text").GetValue(control, null);
control.Parent.Controls.Remove(control);
}
}
return;
}