分享

gridview导出成excel,解决迅雷下载出错问题

 四两哥 2011-01-11
 
为了解决迅雷下载出错的问题,必须要做出两个页面,一个页面用来进行传值,另一个页面接收值,然后进行对gridview列绑定
我的日志表中有四列,分别为:LogNo,UserName,DateTimes,Incident;转化成excel之后对应一列名为:日志编号,用户名,日期,事件;
以下代码为对gridview进行列名的动态改变。
            bf1.HeaderText = "日志编号";
            bf1.DataField = "LogNo";
            bf2.HeaderText = "用户名";
            bf2.DataField = "UserName";
            bf3.HeaderText = "日期";
            bf3.DataField = "DateTimes";
            bf4.HeaderText = "事件";
            bf4.DataField = "Incident";
 
 
第一个页面用来传值,在我这个例子中是传递三个值,username,stime,etime
以下代码放在点击触发事件里面:
           string username = tbUserName.Text;
            string stime = hideStart.Value;
            string etime = hideEnd.Value;
            string str = "username=" + username + "&stime=" + stime + "&etime=" + etime;
            Response.Redirect("BackLogDown.aspx?" + str);
  
 
以下代码放在用来接收值的页面BackLogDown.aspx的page_load里面       
            string username = Request.QueryString["username"];
            string stime = Request.QueryString["stime"];
            string etime = Request.QueryString["etime"];
            DateTime startTime = new DateTime();
            DateTime endTime = new DateTime();
            if (!string.IsNullOrEmpty(stime))
            {
                startTime = DateTime.Parse(stime);
            }
            if (!string.IsNullOrEmpty(etime))
            {
                endTime = DateTime.Parse(etime);
            }
            BLL.BackChangeBLL bll = new BackChangeBLL();
            List<Log> log = new List<Log>();
            log = bll.bllQueryLogAll(username, startTime, endTime);
            GridView dgv = new GridView();
            BoundField bf1 = new BoundField();
            BoundField bf2 = new BoundField();
            BoundField bf3 = new BoundField();
            BoundField bf4 = new BoundField();
            bf1.HeaderText = "日志编号";
            bf1.DataField = "LogNo";
            bf2.HeaderText = "用户名";
            bf2.DataField = "UserName";
            bf3.HeaderText = "日期";
            bf3.DataField = "DateTimes";
            bf4.HeaderText = "事件";
            bf4.DataField = "Incident";
            dgv.Columns.Add(bf1);
            dgv.Columns.Add(bf2);
            dgv.Columns.Add(bf3);
            dgv.Columns.Add(bf4);
            dgv.AutoGenerateColumns = false;
            dgv.DataSource = log;
            dgv.DataBind();
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            string filename = "日志表";
            Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(filename + ".xls", System.Text.Encoding.UTF8));
            Response.ContentType = "application/ms-excel";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            this.EnableViewState = false;
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            dgv.RenderControl(htw);
            Response.Write(sw.ToString());
            Response.Flush();
            Response.End(); 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约