GridView导出选中行

 

protected void btnToExcel_Click(object sender, EventArgs e)
    {
        this.toExcelClk(this.gvUser);
    }
    /// <summary>
    /// 导出EXCEL 复写方法
    /// </summary>
    /// <param name="control"></param>
    public override void VerifyRenderingInServerForm(Control control)
    {
        //base.VerifyRenderingInServerForm(control);
    }
    private void ToExcel(Control ctl, string FileName)
    {
        HttpContext.Current.Response.Charset = "UTF-8";
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
        HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=UTF-8\">");
        HttpContext.Current.Response.ContentType = "application/ms-excel";
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName);
        ctl.Page.EnableViewState = false;
        System.IO.StringWriter tw = new System.IO.StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(tw);
        ctl.RenderControl(hw);
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.End();
    }


    /// <summary>  
    /// 导出为Excel  
    /// </summary>  
    /// <param name="ckbSelect">选择的复选框,1为导出当前选择行,2为导出当前页,3为导出所有记录</param>  
    private void toExcelClk(GridView gvw)
    {

        gvw.AllowPaging = false;
        gvw.AllowSorting = false;
        int i = -1;
        foreach (GridViewRow gvwRow in this.gvUser.Rows)
        {
            i++;
            if (((CheckBox)gvwRow.FindControl("cbSelect")).Checked)
            {
                gvw.Rows[i].Visible = true;
            }
            else
            {
                gvw.Rows[i].Visible = false;
            }
        }

        gvw.Columns[0].Visible = false;//隐藏选择列,不导出选择列  
        gvw.Columns[8].Visible = false;
        ToExcel(gvw, "sdtcUser.xls");
        gvw.AllowPaging = true;
        gvw.AllowSorting = true;
        gvw.Columns[0].Visible = true;//恢复选择列为可见  
        gvw.Columns[8].Visible = true;
        this.BindGVUser(GetCondition());
    }

 

注意:

如果运行时报错:只能在执行 Render() 的过程中调用 RegisterForEventValidation

 

 则在页面上加入 EnableEventValidation="false" 即可解决此问题

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

感谢一路走过的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值