Fórum Gridview com Detalhes #13560

05/01/2010

0

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

Responder

Posts

05/01/2010

Luiz Maia

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
Responder

Gostei + 0

05/01/2010

Fernando Reis

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




Responder

Gostei + 0

05/01/2010

Fernando Reis

Luiz,


Veja a reposta que eu precisava,,


funcionou bacaninha,


vou usar seu exemplo em outra p[agina

GRATO
Responder

Gostei + 0

06/01/2010

Luiz Maia

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
Responder

Gostei + 0

13/01/2010

Fernando Reis

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




Responder

Gostei + 0

13/01/2010

Luiz Maia

Usando os recursos o Ajax, ou pode ser sem o Accordion mesmo?   Aguardo Att Luiz Maia
Responder

Gostei + 0

13/01/2010

Fernando Reis

Teria que ser dentro do Accordion!

:0)
Responder

Gostei + 0

13/01/2010

Luiz Maia

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

Gostei + 0

13/01/2010

Fernando Reis

Correto,   Grid esta dentro do Accordion
Responder

Gostei + 0

13/01/2010

Luiz Maia

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
Responder

Gostei + 0

14/01/2010

Fernando Reis

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)?
Responder

Gostei + 0

14/01/2010

Luiz Maia

Fico no aguardo... Abraços   Att Luiz Maia
Responder

Gostei + 0

14/01/2010

Fernando Reis

recebeu meu e-mail em resposta ao seu (sobre as vídeo aulas)?
Responder

Gostei + 0

14/01/2010

Fernando Reis

bacaninha.


resolvido, com o exemplo anterior

Obrigado
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar