Gridview com Detalhes

05/01/2010

Olá


Estou trabalhando com um sistema  e neste possuo uma tabela,,...... por   exemplo...... Clientes e Pedidos,



Gostaria de Lista os Clientes em uma gridview e dentro de cada linha / Registro inserir uma Grid com Detalhen de Pedido de cada Cliente.



Consegui resolver isto sem problemas, mas gostaria de um exemplo melhor como por exemplo   um botão em que cria-se   um efeito parecido com o accordion do Ajax,


por exemplo um sinal de "+" ( que pode ser uma figura ) quando clico a linha aumenta e mostra os pedidos de cada cliente


ESPERO TER SIDO CLARO,

Grato


Fernando Reis

Fernando Reis

Curtidas 0

Respostas

Luiz Maia

Luiz Maia

05/01/2010

Ola Fernando,   Por favor, de uma olhada neste artigo que escrevi que tem a mesma funcionalidade:     https://www.devmedia.com.br/articles/viewcomp.asp?comp=13234   Neste artigo eu explico como editar os itens, no seu caso vc tera que alterar para listar os subitens, e alterar o label EDITAR da gridview para a imagem com o "+", ok?   Veja se isto vai ajudar, e caso não tenha acesso gratuito ao artigo me diga que providencio para vc, ok?   Abraços Att Luiz Maia
GOSTEI 0
Fernando Reis

Fernando Reis

05/01/2010

Perfeito,


Resolve o problema,


Estava estudando e cheguei a umaopção interessante também,   trata-se do Accordion com um gridview dentro dele,

só estou em dívida como pegar o CODIGO PRINCIPAL para popular o gridview ......  pode me ajudar???


Veja o código:

<cc1:Accordion ID="Accordion1" runat="server"
    HeaderCssClass="Accordion_Header"
    ContentCssClass="Accordion_Conteudo"
    FadeTransitions="true"
    DataSourceID="dsEmpresaSystemas"
    >
   
    <HeaderTemplate>
        Sistema : <%# Eval("NOMESISTEM_TORRE") %>
    </HeaderTemplate>
    <ContentTemplate>
        Modelo : <%# Eval("MODELO_TORRE") %><br />
        Marca : <%# Eval("MARCA_TORRE") %><br />
    </ContentTemplate>
    <Panes>
   
    </Panes>
   
   
       
   
   
    </cc1:Accordion>
            <br />
            <asp:SqlDataSource ID="dsEmpresaSystemas" runat="server" ConnectionString="<%$ ConnectionStrings:csAquaplan %>"
                        SelectCommand="SELECT TBL_EMPRESA.NOME_EMP, TBL_TORRE.NOMESISTEM_TORRE, TBL_TORRE.MODELO_TORRE, TBL_TORRE.MARCA_TORRE,TBL_TORRE.CODIGO_SIS,TBL_TORRE.VOLUME_TORRE, TBL_EMPRESA.CODIGO_EMP FROM TBL_EMPRESA INNER JOIN TBL_TORRE ON TBL_EMPRESA.CODIGO_EMP = TBL_TORRE.CODIGO_EMP WHERE (TBL_EMPRESA.CODIGO_EMP = @CODIGO_EMP)">
                        <SelectParameters>
                            <asp:ControlParameter ControlID="txtCodigo" Name="CODIGO_EMP" PropertyName="Text" />
                        </SelectParameters>
                    </asp:SqlDataSource>
           
           


Dentro do ContentTemplate quero adcionar um gridview  que deverá receber o campo  <%#Eval("CODIGO")>


Sei que tenho que usar o ROWDataBound, mas como recuperar o registro acima??????



Grato pela ajuda




GOSTEI 0
Fernando Reis

Fernando Reis

05/01/2010

Luiz,


Veja a reposta que eu precisava,,


funcionou bacaninha,


vou usar seu exemplo em outra p[agina

GRATO
GOSTEI 0
Luiz Maia

Luiz Maia

05/01/2010

Fernando,   Como você optou por outra solução, vou cancelar seu chamado, assim não perde os créditos, ok? Abraços e até mais....   Att Luiz Maia
GOSTEI 0
Fernando Reis

Fernando Reis

05/01/2010

Luiz,


Voltando a este assunto,   gostaria de Saber!


Veja o modelo que usei de Código

HTML :Default.aspx

<div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <br />
        <cc1:Accordion ID="Accordion1" runat="server" HeaderCssClass="Accordion_Header" ContentCssClass="Accordion_Conteudo"
            FadeTransitions="true" DataSourceID="dsCustomer" OnItemDataBound="Accordion1_ItemDataBound">
            <HeaderTemplate>
                <%# Eval("CompanyName")%>
            </HeaderTemplate>
            <ContentTemplate>
                <asp:HiddenField ID="hdfCodigo" runat="server" Value='<%#DataBinder.Eval(Container.DataItem,"CustomerID") %>' />
                <%# Eval("ContactName")%>
                <br />
                <asp:GridView ID="gvOrder" runat="server">
                </asp:GridView>
            </ContentTemplate>
            <Panes>
            </Panes>
        </cc1:Accordion>
        <asp:SqlDataSource ID="dsCustomer" runat="server" ConnectionString="<%$ ConnectionStrings:csNorth %>"
            SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName] FROM [Customers] ORDER BY [CompanyName]">
        </asp:SqlDataSource>
        <br />
    </div>


Code: Default.aspx.cs


protected void Accordion1_ItemDataBound(object sender, AjaxControlToolkit.AccordionItemEventArgs e)
    {

        if (e.ItemType == AjaxControlToolkit.AccordionItemType.Content)
        {
            SqlConnection sqlConn = new SqlConnection(conString);
            sqlConn.Open();
            string strsql = "";

            strsql += "SELECT Orders.OrderID, Customers.CompanyName, Orders.OrderDate, Orders.CustomerID";
            strsql += " FROM Customers INNER JOIN ";
            strsql += " Orders ON Customers.CustomerID = Orders.CustomerID ";
            strsql += " WHERE     (Orders.CustomerID = '" + ((HiddenField)e.AccordionItem.FindControl("hdfCodigo")).Value.ToString() + "')";

            SqlCommand sqlSelect = new SqlCommand(strsql, sqlConn);
            sqlSelect.CommandType = System.Data.CommandType.Text;
            SqlDataAdapter sqlAdapter = new SqlDataAdapter(sqlSelect);
            DataSet myDataset = new DataSet();
            sqlAdapter.Fill(myDataset);
            sqlConn.Close();

            GridView grd = new GridView();

            grd = (GridView)e.AccordionItem.FindControl("gvOrder");
            grd.DataSource = myDataset;
            grd.DataBind();
        }
    }



Ou seja :


Crio uma conexão com o Banco NorthWind.

Busco a Tabela CUSTOMER e Crio o Accordion.

Enquanto o Accordion esta sendo Criado,   busco o gridView e Populo com informação referente aquele Grid.



minha pergunta é:


como faço para implementar um método  "Excluir"  para cada linha do GridView?


Abraços




GOSTEI 0
Luiz Maia

Luiz Maia

05/01/2010

Usando os recursos o Ajax, ou pode ser sem o Accordion mesmo?   Aguardo Att Luiz Maia
GOSTEI 0
Fernando Reis

Fernando Reis

05/01/2010

Teria que ser dentro do Accordion!

:0)
GOSTEI 0
Luiz Maia

Luiz Maia

05/01/2010

Fernando,   na verdade o Accordion não tem nada haver com a Grid não. A grid esta dentro de seu Accordion, correto?
GOSTEI 0
Fernando Reis

Fernando Reis

05/01/2010

Correto,   Grid esta dentro do Accordion
GOSTEI 0
Luiz Maia

Luiz Maia

05/01/2010

Fernando,   Faça o sistema de exclsão habitual mesmo, usando um templatefiled com um imageButton dentro dele. Acho que ja te passei um projeto exemplificando isto, caso contrario, me informe que te passo novamente, ok?   Aguardo Att Luiz Maia
GOSTEI 0
Fernando Reis

Fernando Reis

05/01/2010

Acabei de encontrar o Post que comentou abaixo,

Vou testar,

Aviso em breve

.


Ps.  recebeu meu e-mail em resposta ao seu (sobre as vídeo aulas)?
GOSTEI 0
Luiz Maia

Luiz Maia

05/01/2010

Fico no aguardo... Abraços   Att Luiz Maia
GOSTEI 0
Fernando Reis

Fernando Reis

05/01/2010

recebeu meu e-mail em resposta ao seu (sobre as vídeo aulas)?
GOSTEI 0
Fernando Reis

Fernando Reis

05/01/2010

bacaninha.


resolvido, com o exemplo anterior

Obrigado
GOSTEI 0
POSTAR