Exportar gridview para excel

11/03/2009


Tenho uma pagina com gridview, essa pagina tem um botão com a função de gerar um excel com os dados do gridview. Quero manipular esse gridview para que ele tenha vários cabeçalhos um a cima do outro, não apenas o cabeçalho de cada coluna, mas sim que pegue uma linha inteira (os exemplos em anexo mostram como ele estava e como deve ficar), e esses dados sejam enviados para o excel.

Obrigado

Tiago Leite


Codigo aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Carrinho.aspx.cs" ValidateRequest="false"
    EnableEventValidation="false" Inherits="Femsa.MerchToolbox.Carrinho" UICulture="pt-BR" Culture="pt-BR" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
<meta http-equiv="PRAGMA" content="NO-CACHE">
<meta http-equiv="content-language" content="pt">
<head runat="server">
    <title>Untitled Page</title>
    <link rel="stylesheet" href="lib/estilo.css" type="text/css" />
    <link rel="stylesheet" href="lib/carrinho.css" type="text/css" />

    <script type="text/javascript">
        function mensagem() {

            v_msg = "<h1 style='color:#98012e'>Atenção</h1><p style='font-size:14px'>O presente documento, após finalizado, figurará para a FCB como pedido de compra, ou seja, um compromisso de aquisição dos itens junto aos fornecedores.<br />Todos os pedidos estão sujeitos à confirmação, pois têm quantidades mínimas a serem alcançadas nacionalmente.<br /><br />Período de Compra Centralizada: <span style='color:#98012e'>nov/08 a fev/09</span>.</p><br /><br /><p align='right'><a href='#' onclick=\"parent.closeMessage();return false\">Fechar</a></p>";
            parent.displayStaticMessage(v_msg, "modalDialog_contentDiv");
            return false;

        }       
    </script>

    <script language="javascript" type="text/javascript" src="lib/AjaxCarrinho.js"></script>

</head>
<body onload="//javascript:mensagem();" style="overflow-x:hidden; overflow-y:auto;">
    <form id="form1" runat="server">
    <asp:Button ID="btnSubmit" Style="display: none;" runat="server" />
    <div id="menu_carro">
        <p style="border-bottom: 1px solid; margin: 0px">
            Menu</p>
        <asp:Button ID="btnSalvar" Style="background: #ddd; border-style: none; color: #555;
            margin: 0px; width: 95px; height: 25px; cursor: pointer; text-align: left" runat="server"
            Text="Salvar carrinho" OnClick="btnSalvar_Click" Width="86px" />
        <asp:Button ID="btnExcel" Style="background: #ddd; border-style: none; color: #555;
            margin: 0px; width: 95px; height: 25px; cursor: pointer; text-align: left" runat="server"
            Text="Salvar EXCEL" OnClick="btnExcel_Click" Width="86px" />
        <asp:Button ID="btnAtualizar" Style="background: #ddd; border-style: none; color: #555;
            margin: 0px; width: 95px; height: 25px; cursor: pointer; text-align: left" runat="server"
            Text="Atualizar Valores" OnClick="btnAtualizar_Click" Width="86px" />
    </div>
    <div id="tab_carro">
           <asp:GridView ID="GridView1"  BorderWidth="0px" Width="550px" CellPadding="2" CellSpacing="1"
            runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound"
            ShowFooter="true" DataSourceID="SqlDataSource1">
            <HeaderStyle BackColor="#98012E" Height="25px" ForeColor="#FFFFFF" Font-Size="13px"
                Font-Bold="true" VerticalAlign="Bottom" />
            <FooterStyle BackColor="#98012E" Height="25px" ForeColor="#FFFFFF" Font-Size="13px"
                Font-Bold="true" VerticalAlign="Bottom" HorizontalAlign="Center" />
               
            <Columns>
           
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Marca">
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("marca") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Produto">
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("produto") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Compra minima">
                    <ItemTemplate>
                        <asp:Label ID="Label4" runat="server" Text='<%# Bind("min_brasil") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Qtde compra">
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox5" runat="server" size="4" Text='<%# Bind("qtde") %>'></asp:TextBox>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Valor unit">
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("prc1") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Valor total">
                    <ItemTemplate >
                        <asp:Label ID="Label6" runat="server" Text='<%# Bind("ptotal") %>'></asp:Label>
                        <%--<asp:TextBox ID="TextBox6" Visible="false" runat="server" size="12" Text='<%# Bind("num_pedido") %>'></asp:TextBox>--%>
                        <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Bind("id_per") %>' />
                        <asp:HiddenField ID="HiddenField2" runat="server" Value='<%# Bind("id_usr") %>' />
                        <asp:HiddenField ID="HiddenField3" runat="server" Value='<%# Bind("id_prod") %>' />
                        <asp:HiddenField ID="HiddenField4" runat="server" Value='<%# Bind("confirmado") %>' />
                        <asp:HiddenField ID="HiddenField5" runat="server" Value='<%# Bind("punit") %>' />
                        <asp:HiddenField ID="HiddenField6" runat="server" Value='<%# Bind("num_pedido") %>' />
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="">
                    <ItemTemplate>
                        <%--<asp:ImageButton ID="imgExcluir" runat="server" ImageUrl="imagens/del.gif" onclick="<%# "javascript:ExcluirProduto('" + DataBinder.Eval(Container.DataItem, "id_compra") + "'); history.go(0);" %>" />--%>
                        <img src="imagens/del.gif" onclick="<%# "javascript:ExcluirProduto('" + DataBinder.Eval(Container.DataItem, "id_compra") + "'); history.go(0);" %>"
                            style="cursor: pointer" />
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
    <asp:HiddenField ID="hdfUsuario" runat="server" />
    <br>
    <div>
        <asp:GridView ID="GridView2" BorderWidth="0px" Width="550px" CellPadding="2" CellSpacing="1"
            runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView2_RowDataBound"
            ShowFooter="true" DataSourceID="SqlDataSource1" Style="display: none">
            <HeaderStyle BackColor="#98012E" Height="25px" ForeColor="#FFFFFF" Font-Size="13px"
                Font-Bold="true" VerticalAlign="Bottom" />
            <FooterStyle BackColor="#98012E" Height="25px" ForeColor="#FFFFFF" Font-Size="13px"
                Font-Bold="true" VerticalAlign="Bottom" HorizontalAlign="Center" />
            <Columns>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Marca">
                    <ItemTemplate>
                        <asp:Label ID="Label_1" runat="server" Text='<%# Bind("marca") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Produto">
                    <ItemTemplate>
                        <asp:Label ID="Label_2" runat="server" Text='<%# Bind("produto") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Compra minima">
                    <ItemTemplate>
                        <asp:Label ID="Label_4" runat="server" Text='<%# Bind("min_brasil") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Qtde compra">
                    <ItemTemplate>
                        <asp:Label ID="Label_5" runat="server" Text='<%# Bind("qtde") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Valor unit">
                    <ItemTemplate>
                        <asp:Label ID="Label_3" runat="server" Text='<%# Bind("prc1") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Valor total">
                    <ItemTemplate>
                        <asp:Label ID="Label_6" runat="server" Text='<%# Bind("ptotal") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:femsaConnectionString %>"
        SelectCommand="SELECT tb_carrinho.id_compra, tb_carrinho.confirmado, tb_carrinho.id_per, tb_carrinho.id_usr, tb_carrinho.id_prod, tb_produto.produto, tb_carrinho.qtde, tb_carrinho.num_pedido, tb_carrinho.punit, tb_carrinho.ptotal,tb_produto.min_brasil,tb_produto.prc1, tb_produto.prd_tit, tb_marcas.marca FROM tb_carrinho INNER JOIN tb_produto ON tb_carrinho.id_prod = tb_produto.id INNER JOIN tb_marcas ON tb_produto.id_mk = tb_marcas.id
Where  tb_carrinho.id_usr = @id_usr">
        <SelectParameters>
            <asp:ControlParameter ControlID="hdfUsuario" Name="id_usr" PropertyName="Value" />
        </SelectParameters>
    </asp:SqlDataSource>
    </form>
    <br />
</body>
</html>




Codigo C#
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data.Common;


namespace Femsa.MerchToolbox
{
    public partial class Carrinho : System.Web.UI.Page
    {
        decimal valorTotal = 0, somaFinal = 0;
        int contador = 0;
        string nomeUsuario, nomeUsuarioDetalhe;
        decimal pfinal = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            Page.RegisterStartupScript("usuarioLogado", "<script language=\"javascript\">var usuario_id = '" + Session["usuarioID"] + "';</script>");
            hdfUsuario.Value = "" + Session["usuarioID"];
            nomeUsuario = hdfUsuario.Value;
            nomeUsuarioDetalhe = "" + Session["usuarioName"];
        }

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            ValoresSoma();
            if (e.Row.RowType == DataControlRowType.Footer)
            {
                e.Row.Cells[4].Text = "Total: ";
                e.Row.Cells[5].Text = Convert.ToString(somaFinal);
            }
        }

        protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            ValoresSoma();
            if (e.Row.RowType == DataControlRowType.Footer)
            {
                e.Row.Cells[4].Text = "Total: ";
                e.Row.Cells[5].Text = Convert.ToString(somaFinal);
            }
        }

        protected void btnAtualizar_Click(object sender, EventArgs e)
        {
            if (GridView1.Rows.Count > 0)
            {
                ValoresSoma();
                Salvar();
            }
        }

        protected void ValoresSoma()
        {
            int total_itens = 0, item_selec = 0;
            string valorSomaTotal;
            decimal total, qtde_compra, punit;
            total_itens = GridView1.Rows.Count;

            if (total_itens > 0)
            {
                for (item_selec = 0; item_selec < total_itens; item_selec++)
                {
                    qtde_compra = Convert.ToDecimal(((TextBox)GridView1.Rows[item_selec].Cells[3].FindControl("TextBox5")).Text);
                    punit = Convert.ToDecimal(((Label)GridView1.Rows[item_selec].Cells[4].FindControl("Label3")).Text);
                    total = qtde_compra * punit;
                    valorSomaTotal = Convert.ToString(Convert.ToDecimal(total));
                    ((Label)GridView1.Rows[item_selec].Cells[5].FindControl("Label6")).Text = valorSomaTotal;
                    // somaFinal = somaFinal + Convert.ToDecimal(((Label)GridView1.Rows[item_selec].Cells[5].FindControl("Label6")).Text);
                }
            }
            total_itens = GridView2.Rows.Count;
            item_selec = 0;
            somaFinal = 0;
            for (item_selec = 0; item_selec < total_itens; item_selec++)
            {
                qtde_compra = Convert.ToDecimal(((Label)GridView2.Rows[item_selec].Cells[3].FindControl("Label_5")).Text);
                punit = Convert.ToDecimal(((Label)GridView2.Rows[item_selec].Cells[4].FindControl("Label_3")).Text);
                total = qtde_compra * punit;
                valorSomaTotal = Convert.ToString(Convert.ToDecimal(total));
                ((Label)GridView2.Rows[item_selec].Cells[5].FindControl("Label_6")).Text = valorSomaTotal;
                somaFinal = somaFinal + Convert.ToDecimal(((Label)GridView2.Rows[item_selec].Cells[5].FindControl("Label_6")).Text);
            }
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            if (GridView1.Rows.Count > 0)
            {
                ValoresSoma();
                Salvar();
            }
        }

        protected void Salvar()
        {
            int total_itens = 0, item_selec = 0;
            string marca, produto, qtde_ant, qtde_min, qtde_compra, pedido, id_item, id_usuario, id_prod, confirmado, punit, ptotal;
            total_itens = GridView1.Rows.Count;

            id_item = ((HiddenField)GridView1.Rows[0].Cells[5].FindControl("HiddenField1")).Value;

            //Excluir itens antigos
            id_usuario = hdfUsuario.Value;
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["femsaConnectionString"].ToString());
            con.Open();
            SqlCommand cmdDel = new SqlCommand("sp_delCarrinho", con);
            cmdDel.CommandType = CommandType.StoredProcedure;
            cmdDel.Parameters.AddWithValue("@id_usr", id_usuario);
            cmdDel.ExecuteNonQuery();

            //Adicionar itens novos
            if (total_itens > 0)
            {
                SqlCommand cmdIns = new SqlCommand("PROC_tb_carrinho_INC", con);
                for (item_selec = 0; item_selec < total_itens; item_selec++)
                {
                    cmdIns.Parameters.Clear();
                    marca = ((Label)GridView1.Rows[item_selec].Cells[0].FindControl("Label1")).Text;
                    produto = ((Label)GridView1.Rows[item_selec].Cells[1].FindControl("Label2")).Text;
                    qtde_ant = ((Label)GridView1.Rows[item_selec].Cells[4].FindControl("Label3")).Text;
                    qtde_min = ((Label)GridView1.Rows[item_selec].Cells[2].FindControl("Label4")).Text;
                    qtde_compra = ((TextBox)GridView1.Rows[item_selec].Cells[3].FindControl("TextBox5")).Text;
                    pedido = ((HiddenField)GridView1.Rows[item_selec].Cells[5].FindControl("HiddenField6")).Value;
                    id_usuario = ((HiddenField)GridView1.Rows[item_selec].Cells[5].FindControl("HiddenField2")).Value;
                    id_prod = ((HiddenField)GridView1.Rows[item_selec].Cells[5].FindControl("HiddenField3")).Value;
                    confirmado = ((HiddenField)GridView1.Rows[item_selec].Cells[5].FindControl("HiddenField4")).Value;
                    punit = ((HiddenField)GridView1.Rows[item_selec].Cells[5].FindControl("HiddenField5")).Value;
                    ptotal = ((Label)GridView1.Rows[item_selec].Cells[5].FindControl("Label6")).Text;

                    cmdIns.CommandType = CommandType.StoredProcedure;
                    cmdIns.Parameters.AddWithValue("@id_per", Convert.ToInt32(id_item));
                    cmdIns.Parameters.AddWithValue("@id_usr", id_usuario);
                    cmdIns.Parameters.AddWithValue("@id_prod", Convert.ToInt32(id_prod));
                    cmdIns.Parameters.AddWithValue("@qtde", Convert.ToInt32(qtde_compra));
                    cmdIns.Parameters.AddWithValue("@num_pedido", Convert.ToInt32(pedido));
                    cmdIns.Parameters.AddWithValue("@confirmado", Convert.ToBoolean(confirmado));
                    cmdIns.Parameters.AddWithValue("@punit", Convert.ToDecimal(punit));
                    cmdIns.Parameters.AddWithValue("@ptotal", Convert.ToDecimal(ptotal));
                    cmdIns.ExecuteNonQuery();
                }

                con.Close();
                Response.Redirect(Request.UrlReferrer.ToString(), true);
            }
        }

        protected void btnExcel_Click(object sender, EventArgs e)
        {
            if (GridView1.Rows.Count > 0)
            {
                ValoresSoma();
                PreExport();
            }
        }

        protected void PreExport()
        {
            PrepareGridViewForExport(GridView2);
            ExportGridView();
        }

        private void ExportGridView()
        {
            string attachment = "attachment; filename=Carrinho_" + nomeUsuarioDetalhe + ".xls";
            Response.ClearContent();
            Response.AddHeader("content-disposition", attachment);
            Response.ContentType = "application/ms-excel";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            GridView2.RenderControl(htw);
            Response.Write(sw.ToString());
            Response.End();
        }

        public override void VerifyRenderingInServerForm(Control control)
        {
        }

        private void PrepareGridViewForExport(Control gv)
        {
            LinkButton lb = new LinkButton();
            Literal l = new Literal();
            string name = String.Empty;
            for (int i = 0; i < gv.Controls.Count; i++)
            {
                string a;
                a = Convert.ToString(gv.Controls[i].GetType());
                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);
                }
                //else if (gv.Controls[i].GetType() == typeof(HiddenField))
                //{
                //    // l.Text = (gv.Controls[i] as HiddenField).Value;
                //    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);
                //}
                //else if (gv.Controls[i].GetType() == typeof(HtmlImage))
                //{
                //    //  l.Text = (gv.Controls[i] as Image).Text;
                //    gv.Controls.Remove(gv.Controls[i]);
                //    //gv.Controls.AddAt(i, l);
                //}
                if ((gv.Controls[i].HasControls()) && i != 6)
                {
                    PrepareGridViewForExport(gv.Controls[i]);
                }
            }
        }
    }
}




Tiago Leite

Tiago Leite

Curtidas 0

Respostas

[devmedia .net]

[devmedia .net]

11/03/2009

Olá Thiago, tudo bem ? Bom para que eu posso entender melhor...
Você quer que seu grid fique igual ao da imagem do excel que você enviou ?
Que tenha seu nome acima do cabeçalho do grid ?? E quer exportar para excel o grid que for gerado ?

Bom , eu vejo que seu método para exportar para excel já está implementado, O que precisa mesmo é saber como colocar outro cabeçalho no GridView ??
Não entedi o que quis dizer com vários cabeçalhos um em cima do outro.. pode ser mais específico ??   No aguardo... Abraços Carlos JR
GOSTEI 0
Tiago Leite

Tiago Leite

11/03/2009

Sim eu quero fazer um grid igual ao da imagem do excel, depois ele sera exportado par excel.
Na verdade, meu nome e endereço tambem são dados vindo do banco de dados, como é mais que um campo seria mais do que um cabeçalho, ou seja, se fosse apenas o campo nome seria apenas um cabeçalho a mais, por ser nome, endereço e CPF por exemplo seria 3 cabeçalhos a mais, ou seja eu quero trazer mais do que um cabeçalho no topo do gridview, o nome em cima do CPF que por sua vez estaria em cima do endereço, por isso seria um em cima do outro, a ideia é que eu consiga flexibilidade, ou seja mais de um.

Obrigado

Tiago Leite



GOSTEI 0
[devmedia .net]

[devmedia .net]

11/03/2009

Olá Thiago, Não tem como criar dois cabeçalhos no gridview, pois o mesmo não permite isso.. O que você teria que fazer é criar labels acima do gridview e populá-los com as informações que vierem da base de dados...   Ou, você teria outra possibilidade.. Colocar o GridView dentro de um DataList, aí você criaria um cabeçalho no DataList e o GridView ficaria dentro dele,   só que pelo que eu veja da sua função de exportação para excel, onde você passa o gridview, não será possível exportar os dados que estão fora do grid view, portanto nenhuma das soluções acima lhe resolveria o problema.   Você teria que alterar seu método de exportação para excel, aí poderia utilizar a primera solução pegando as informações de um label que estará acima do gridview, que não necessariamente precisaria existir, pois se vai pegar as informações de nome e etc... pode pegar direto e colocar no método de exportação para o excel...   private void PrepareGridViewForExport(Control gv)
        {
            LinkButton lb = new LinkButton();
            Literal l = new Literal();
                  //Colocar as informações de nome e etc no Literal separando           // Se reparar é isso que o método faz, joga as informações no Literal           // Portanto é só alterá-lo           l.Text = "Thiago <br>"           l.Text = "CPF: 1231231231 <br>"           l.Text = "Telefone: 1231231231 <br>"    
            string name = String.Empty;
            for (int i = 0; i < gv.Controls.Count; i++)
            {
                string a;
                a = Convert.ToString(gv.Controls[i].GetType());
                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);
                }
                //else if (gv.Controls[i].GetType() == typeof(HiddenField))
                //{
                //    // l.Text = (gv.Controls[i] as HiddenField).Value;
                //    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);
                //}
                //else if (gv.Controls[i].GetType() == typeof(HtmlImage))
                //{
                //    //  l.Text = (gv.Controls[i] as Image).Text;
                //    gv.Controls.Remove(gv.Controls[i]);
                //    //gv.Controls.AddAt(i, l);
                //}
                if ((gv.Controls[i].HasControls()) && i != 6)
                {
                    PrepareGridViewForExport(gv.Controls[i]);
                }
            }
GOSTEI 0
[devmedia .net]

[devmedia .net]

11/03/2009

Olá Thiago, estou aguardando seu retorno para que possamos continuar o atendimento do chamado ou fechar o mesmo.   Abraços   Carlos Jr
GOSTEI 0
Tiago Leite

Tiago Leite

11/03/2009

Ola Carlos,

Eu ainda estou tentando resolver, não consegui ainda, te passarei mais detalhado outra duvidas nesse chamado caso não consiga concluir o desenvolvimento
GOSTEI 0
[devmedia .net]

[devmedia .net]

11/03/2009

Olá Thiago, tudo bem ? Vou verificar com o moderador do sistema sobre manter o chamado em aberto, pois o mesmo já encontra em aberto a muito tempo e sem resposta.   Grande abraço,   Carlos Jr
GOSTEI 0
Devmedia

Devmedia

11/03/2009

Tiago, o chamado será colocado como concluído, mas caso vc tenha dúvidas sobre o assunto inicial desse chamado, o mesmo pode ser reaberto, basta vc postar uma nova mensagem aqui. 
GOSTEI 0
Tiago Leite

Tiago Leite

11/03/2009

Carlos tudo bem?
Não consegui inserir os dados.Tentei de tudo que é jeito
A principio eu tinha inserido essa parte que vocÊ tinha me passado:

l.Text = "Tiago <br>";
l.Text = "CPF: 1231231231 <br>";
l.Text = "Telefone: 1231231231 <br>";


GOSTEI 0
[devmedia .net]

[devmedia .net]

11/03/2009

Thiago, está faltando você adicionar no Control...
Eu falei para você alterar seu método de exportação apara adaptar a sua realidade, só adicionar as linhas não adiante... veja abaixo Coloque a linha abaixo... ficando assim.. Só que deve colocar isso dentro do for que está no método.. Adicione as linhas em negrito               string name = String.Empty;
            for (int i = 0; i < gv.Controls.Count + 1; i++)
            {                l.Text = "Thiago <br>"               l.Text = "CPF: 1231231231 <br>"               l.Text = "Telefone: 1231231231 <br>"                 gv.Controls.AddAt(i, l);                   string a;
                a = Convert.ToString(gv.Controls[i].GetType());
                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);
                }
                //else if (gv.Controls[i].GetType() == typeof(HiddenField))
                //{
                //    // l.Text = (gv.Controls[i] as HiddenField).Value;
                //    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);
                //}
                //else if (gv.Controls[i].GetType() == typeof(HtmlImage))
                //{
                //    //  l.Text = (gv.Controls[i] as Image).Text;
                //    gv.Controls.Remove(gv.Controls[i]);
                //    //gv.Controls.AddAt(i, l);
                //}
                if ((gv.Controls[i].HasControls()) && i != 6)
                {
                    PrepareGridViewForExport(gv.Controls[i]);
                }
            }
  Carlos Jr
GOSTEI 0
POSTAR