asp.net 导出 excel (含控件)

 protected void btnImport_Click(object sender, EventArgs e)  

   {      

   if (GridViewID.Rows.Count != 0)      

   {          

   DisableControls(GridViewID);      

      Response.Clear();      

      Response.Buffer = true;      

      Response.Charset = "GB2312";      

      Response.AddHeader("content-disposition", "attachment;filename=/"" + HttpUtility.UrlEncode("文件名", System.Text.Encoding.UTF8) + ".xls/"");         

   Response.ContentEncoding = System.Text.Encoding.UTF8;        

    Response.ContentType = "application/ms-excel";        

     System.IO.StringWriter oStringWriter = new System.IO.StringWriter();       

     System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);        

    this.GridViewID.RenderControl(oHtmlTextWriter);       

     Response.Output.Write(oStringWriter.ToString());     

       Response.Flush();        

    Response.End();      

   }     

}  

public override void VerifyRenderingInServerForm(Control control)  

  { }       

 private void DisableControls(Control gv)   

 {       

 DropDownList dr = new DropDownList();    

    TextBox tb = new TextBox();   

     Literal l = new Literal();     

   string name = String.Empty;      

   for (int i = 0; i < gv.Controls.Count; i++)   

     {           

 if (gv.Controls[i].GetType() == typeof(DropDownList))      

      {               

 l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;           

     gv.Controls.Remove(gv.Controls[i]);          

      gv.Controls.AddAt(i, l);         

   }  

          else if (gv.Controls[i].GetType() == typeof(TextBox))    

        {                             

  l.Text = (gv.Controls[i] as TextBox).Text;   

             gv.Controls.Remove(gv.Controls[i]);  

              gv.Controls.AddAt(i, l);      

      }            

 if (gv.Controls[i].HasControls())        

    {              

  DisableControls(gv.Controls[i]);           

 }      

  }  

 }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值