gridview查询后,怎么导出的是全部数据?想把查询后的数据导出来!

//清除缓冲区流中的所有内容输出。Response.Clear();//将一个HTTP标头添加到输出流。提供System.Web.HttpResponse.AddHead... //清除缓冲区流中的所有内容输出。
Response.Clear();
//将一个 HTTP 标头添加到输出流。提供 System.Web.HttpResponse.AddHeader(System.String,System.String) 是为了与 ASP 的先前版本保持兼容。
// 方法public void AddHeader(string name, string value)中参数:name: 要添加 value 的 HTTP 头名称。value:要添加到头中的字符串。
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
// 获取或设置输出流的 HTTP 字符集。返回结果: 输出流的 HTTP 字符集。
Response.Charset = "gb2312";
// 获取或设置输出流的 HTTP MIME 类型。返回结果:输出流的 HTTP MIME 类型。默认值为“text/html”。
Response.ContentType = "application/vnd.xls";
// 实现一个用于将信息写入字符串的 System.IO.TextWriter。该信息存储在基础 System.Text.StringBuilder 中。
// 下面设置其对象
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
//将标记字符和文本写入到 ASP.NET 服务器控件输出流。此类提供 ASP.NET 服务器控件在向客户端呈现标记时所使用的格式设置功能。
// 下面设置其对象
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
//获取或设置一个值,该值指示是否启用分页功能。返回结果:如果启用分页功能,则为 true;否则为 false。默认值为 false。
GridView1.AllowPaging = false;
bind();
//将服务器控件的内容输出到所提供的 System.Web.UI.HtmlTextWriter 对象中;如果已启用跟踪功能,则存储有关控件的跟踪信息。
//方法public virtual void RenderControl(HtmlTextWriter writer)中参数:writer:接收控件内容的 System.Web.UI.HTmlTextWriter 对象 。
GridView1.RenderControl(htmlWrite);
// 摘要: 将一个字符串写入 HTTP 响应输出流。
//方法public void Write(string s)中参数:s: 要写入 HTTP 输出流的字符串。
// stringWrite.ToString():返回包含迄今为止写入到当前 StringWriter 中的字符的字符串。
Response.Write(stringWrite.ToString());
//将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发 System.Web.HttpApplication.EndRequest 事件。
Response.End();
//重新启用分页功能。
GridView1.AllowPaging = true;
bind();
展开
 我来答
onlyonewt
推荐于2016-09-27 · TA获得超过142个赞
知道答主
回答量:26
采纳率:0%
帮助的人:22.4万
展开全部
我这有个GridView导出excel的方法,希望对你有帮助,你的思路没问题,先撤销分页,然后导出,然后再绑定,分页
//导出按钮事件
protected void btnExcel_Click(object sender, EventArgs e)
{
GridView1.AllowPaging = false;
//撤销分页后绑定所有数据
QueryTrainTotol();
//导出到Excel
GridViewToExcel(GridView1);
//导出后恢复分页
GridView1.AllowPaging = true;
//重新绑定
QueryTrainTotol();
}
//GridView导出Excel
protected void GridViewToExcel(GridView gv)
{
string style = @"<style> .text { mso-number-format:\@; } </script> ";
Response.ClearContent();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);

gv.RenderControl(htw);
Response.Write(style);
Response.Write(sw.ToString());
Response.End();
}

//绑定数据
protected void QueryTrainTotol()
{
siteID = Convert.ToInt32(ddlSite.SelectedItem.Value);
string year = ddlYear.SelectedItem.Text.ToString();
string sql = " where SiteID=" + siteID + " and Years='" + year + "'";
try
{
DataSet ds = BLLTrainSchedule.GetTrainScheduleTotalForYear(sql);
if (ds.Tables[0].Rows.Count > 0)
{
Label1.Visible = false;
GridView1.Visible = true;
GridView1.Caption = ddlSite.SelectedItem.Text + ddlYear.SelectedItem.Text + "年培训汇总表";
GridView1.DataSource = ds;
GridView1.DataBind();
}
catch(Exception ex)
{ }
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宋高通
2010-12-08 · 超过89用户采纳过TA的回答
知道答主
回答量:242
采纳率:0%
帮助的人:178万
展开全部
页面增加一个按钮,单击事件添加如下方法:

还有由于是文件操作所以要引入名称空间IO和Text

后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Text;

protected void Button1_Click(object sender, EventArgs e)
{
Export("application/ms-excel", "学生成绩报表.xls");
}

private void Export(string FileType, string FileName)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}

//如果没有下面方法会报错类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内
public override void VerifyRenderingInServerForm(Control control)
{
}

读取Excel数据的代码:
private DataSet CreateDataSource()
{
string strCon;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("excel.xls") + "; Extended Properties=Excel 8.0;";
OleDbConnection olecon = new OleDbConnection(strCon);
OleDbDataAdapter myda = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strCon);
DataSet myds = new DataSet();
myda.Fill(myds);
return myds;
}
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式