Fórum Gridview com Detalhes #13560
05/01/2010
0
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
Curtir tópico
+ 0Posts
05/01/2010
Luiz Maia
Gostei + 0
05/01/2010
Fernando Reis
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
05/01/2010
Fernando Reis
Veja a reposta que eu precisava,,
funcionou bacaninha,
vou usar seu exemplo em outra p[agina
GRATO
Gostei + 0
06/01/2010
Luiz Maia
Gostei + 0
13/01/2010
Fernando Reis
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
13/01/2010
Luiz Maia
Gostei + 0
13/01/2010
Fernando Reis
:0)
Gostei + 0
13/01/2010
Luiz Maia
Gostei + 0
13/01/2010
Fernando Reis
Gostei + 0
13/01/2010
Luiz Maia
Gostei + 0
14/01/2010
Fernando Reis
Vou testar,
Aviso em breve
.
Ps. recebeu meu e-mail em resposta ao seu (sobre as vídeo aulas)?
Gostei + 0
14/01/2010
Luiz Maia
Gostei + 0
14/01/2010
Fernando Reis
Gostei + 0
14/01/2010
Fernando Reis
resolvido, com o exemplo anterior
Obrigado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)