gridview 分页 导出excel 类

勤快小朱猪 2009-04-01 07:39:46
1.这是我写的一个关于导出excel的类。很简单的,我初学。在GridView没有分页以前,可以导出正常的excel,但是分页以后,关于调用绑定GridView函数在类里面不会调用,不知道如何解决?

using System.IO;
using System.Text;

/// <summary>
/// GridViewToExcel 的摘要说明
/// </summary>
public class GridViewToExcel
{
HttpResponse Response = null;
public GridViewToExcel(HttpResponse response)
{
Response = response;
}
/// <summary>
/// 将GridView里的数据导入到Excel文件中,并另存文档
/// </summary>
/// <param name="FileName">文件名称</param>
/// <param name="GridViewTeacher">要导出数据的GridView</param>
public void Export(string FileName, GridView gridview)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = "application/ms-excel";//导出excel文件
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
gridview.RenderControl(hw);
gridview.AllowPaging = false;
Response.Write(tw.ToString());
Response.End();
}
}

2.调用
protected void btnGridViewToExcel_Click(object sender, EventArgs e)
{
GridViewToExcel GridViewOutToExcel = new GridViewToExcel(Response);
GridViewOutToExcel.Export("学生成绩报表123.xls", GridViewTeacher);
}

在调用类的这个页面有一个绑定gridview的函数。

-------------------------------------------------------------------------------
比如:我想下面的函数变成一个类,传入参数gridview和导出excel的名字

protected void toexcel(GridView GridView1)

{
GridView1.AllowPaging = false; //清除分页
GridView1.AllowSorting = false; //清除排序
bind(); //你绑定gridview1数据源的那个函数。
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=dpdgxkh.xls"); //.xls的文件名可修改
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel"; //设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
GridView1.AllowSorting = true; //恢复分页
GridView1.AllowPaging = true; //恢复排序
bind(); //再次绑定
}


不知道bind()函数如何实现???还是不能实现???
我在网上搜了很多,都没有找到相关的帖子!!??
谢谢各位大侠!





...全文
360 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyeede 2009-04-02
  • 打赏
  • 举报
回复
个人认为,语言表达能力差的人,在学习任何知识都会存在障碍。
勤快小朱猪 2009-04-01
  • 打赏
  • 举报
回复
我是想说 我的bind()函数在.aspx页面里,用来绑定gridview的,把绑定数据后的gridview导出到excel,网上大多数的帖子都是在.aspx页面里直接用一个函数导出excel的,我想把这个功能写在一个类。aspx里的bind()函数如何在一个类里起作用啊??我的问题是不是很白痴啊??还是根本不可能实现啊!?
勤快小朱猪 2009-04-01
  • 打赏
  • 举报
回复
谢谢你,toxxj ,那一个bind(),我知道如何实现,我的意思是如何将在.aspx里面的bind()函数如何在一个类里实现!?
toxxj 2009-04-01
  • 打赏
  • 举报
回复
bind()函数如何实现??? 其实就是一个函数把取出来的数据记录绑定到gridview控件上:

private void Bind()
{
string dbconnstring = "数据库字符串";
using (SqlConnection conn = new SqlConnection(dbconnstring))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from emp";
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();


}
}

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧