Olá Pessoal estou com problema para exportar Um GridView para o Excel, segue abaixo meu código, após passar pelo Response.End(); apresenta o seguinte erro
{Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}
Criei o botão abaixo:
protected void btnImprimir_Click(object sender, EventArgs e)
        {
         
            try
            {
                string attachment = "attachment; filename=Contacts.xls";
                Response.ClearContent();
                //Converter campos de controle como CheckBox, DropDownList..
                PreparaGridView(gvResultado1);
                gvResultado1.EnableViewState = false;
                Response.AddHeader("content-disposition", attachment);
                Response.ContentType = "application/ms-excel";
                StringWriter sw = new StringWriter();
                HtmlTextWriter htw = new HtmlTextWriter(sw);
                gvResultado1.RenderControl(htw);
                Response.Write(sw.ToString());
               
                Response.End();
             
            }
            catch (Exception err)
            {
               throw err;
            }
        }
Estou usando esta função para tratar o checBocks que tenho no grid
  private void PreparaGridView(Control gv)
        {
            LinkButton lb = new LinkButton();
            Literal l = new Literal();
            for (int i = 0; i < gv.Controls.Count; i++)
            {
                if (gv.Controls[i].GetType() == typeof(LinkButton))
                {
                    l.Text = (gv.Controls[i] as LinkButton).Text;
                    gv.Controls.Remove(gv.Controls[i]);
                    gv.Controls.AddAt(i, l);
                }
                else 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(CheckBox))
                {
                    l.Text = (gv.Controls[i] as CheckBox).Checked ? "True" : "False";
                    gv.Controls.Remove(gv.Controls[i]);
                    gv.Controls.AddAt(i, l);
                }
                if (gv.Controls[i].HasControls())
                {
                    PreparaGridView(gv.Controls[i]);
                }
            }
        }
Algué, ja passou por isso, ou poderia me dar help?
					
					
					
				
				
				
				 
	
Exportar Gridview Para Excel
		 Started By Mário_Santos, 02/02/2012, 14:30
	
	
	
	
		1 reply to this topic
	
	
			
				
					
						
					
					#1
					 
					
				
				
				
					
				
			
				
			
			
			Posted 02/02/2012, 14:30
			
				
					
						
					
					#2
					 
					
				
				
				
					
				
			
				
			
			
			Posted 12/03/2012, 19:23
					Mario,
A Devmedia tem um artigo interessante sobre o assunto:
Exportação de dados de GridView para Excel e Word
Segue descrição do artigo:
Veja neste artigo como exportar dados de um gridview para arquivos Excel e Word. Veremos um exemplo bem simples utilizando recursos do próprio .Net para realizar a exportação.
Espero que te ajude. Caso não ajude, eles tem um vídeo também, mas aí precisa ser assinante do site, no meu caso eu sou.
Video: ASP.NET e exportação de dados para o Excel
Beijinhos.
Paty
					
				
				
				
				A Devmedia tem um artigo interessante sobre o assunto:
Exportação de dados de GridView para Excel e Word
Segue descrição do artigo:
Veja neste artigo como exportar dados de um gridview para arquivos Excel e Word. Veremos um exemplo bem simples utilizando recursos do próprio .Net para realizar a exportação.
Espero que te ajude. Caso não ajude, eles tem um vídeo também, mas aí precisa ser assinante do site, no meu caso eu sou.
Video: ASP.NET e exportação de dados para o Excel
Beijinhos.
Paty
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)


 
			
			 
				
				
				








