我有一个 GridView 叫GridWaterTable,它会根据一些查询条件 显示对应的数据。 现在我想补充这样一个功能。做一个下载按钮,用户点击下载按钮以后 GridWaterTable中的数据将以exce表的形式下载给用户。我是这样想的。 DataSet ds = this.GridWaterTable.DataSource as DataSet;
System.Data.DataTable dt = ds.Tables[0];这样的代码却提示GridWaterTable。DataSource 为null
我觉得很奇怪 这个GridWaterTable 显示的时候都是有数据的。不知道是否我的方法有错误。
问题:
1:我该如何取得这个GridWaterTable 中的DataSource
2:得到这个DataSource 以后我该如何可以让用户下载(没有做过下载,一并在这里请教啦。)
先谢过各位大侠了
System.Data.DataTable dt = ds.Tables[0];这样的代码却提示GridWaterTable。DataSource 为null
我觉得很奇怪 这个GridWaterTable 显示的时候都是有数据的。不知道是否我的方法有错误。
问题:
1:我该如何取得这个GridWaterTable 中的DataSource
2:得到这个DataSource 以后我该如何可以让用户下载(没有做过下载,一并在这里请教啦。)
先谢过各位大侠了
这个问题我已经知道了。 。
关于下载问题我也知道该找了一个方法 protected void Button8_Click(object sender, EventArgs e)
{
//object obj = this.GridWaterTable.DataSource; //Type DataSource = obj.GetType(); string path = Server.MapPath("Download/aa.txt");
FileInfo fInfo = new FileInfo(path);
string fname = fInfo.Name;
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fname));
Response.AddHeader("Content-Length", fInfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(fInfo.FullName);
Response.Flush();
Response.End();
}也可以了。 问题:我该如何 将一个 DataTable 以Exce的格式 提供给用户下载 ?我不想将这个DataTable 写成Exce在服务器中,再将这个Exce的地址提供给用户下载
我想直接将这个DataTable 转换下 直接写到客户端目录中 。 请问我该怎么做呢?
或者说我重新查询一次数据库 是否会比将这个数据源保存在Session中划算 ??