none
treeview dentro de listview RRS feed

  • Pergunta

  • como posso fazer um treeview dentro do listview?

    carrego o treeview com dados do banco. quando eu clicar num nó do treeview aparecer os detalhes no listview.

    como eu faço?

    quarta-feira, 9 de maio de 2012 20:42

Respostas

  • Acredit que esse exemplo possa te ajudar, uso um TreeView para exibir uma lista de filmes e ao clicar nela exibo alguns detalhes em um ListView com base em dados de uma classe objeto.

    ASPX

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TreeList.aspx.cs" Inherits="JQTest.TreeList" %>
    <!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">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td>
                        <asp:TreeView ID="TreeView1" runat="server" 
                            OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" ImageSet="WindowsHelp">
                            <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
                            <Nodes>
                                <asp:TreeNode Text="Filmes" Value="Filmes">
                                    <asp:TreeNode Text="Filme1" Value="0"></asp:TreeNode>
                                    <asp:TreeNode Text="Filme 2" Value="1"></asp:TreeNode>
                                    <asp:TreeNode Text="Filme3" Value="2"></asp:TreeNode>
                                </asp:TreeNode>
                            </Nodes>
                            <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" 
                                HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="1px" />
                            <ParentNodeStyle Font-Bold="False" />
                            <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" 
                                HorizontalPadding="0px" VerticalPadding="0px" />
                        </asp:TreeView>
                    </td>
                    <td>
                        <asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDataSource1" EnableModelValidation="True">
                            <AlternatingItemTemplate>
                                <tr style="background-color: #FFFFFF;color: #284775;">
                                    <td>
                                        <asp:Label ID="IdFilmeLabel" runat="server" Text='<%# Eval("IdFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:Label ID="NomeFilmeLabel" runat="server" Text='<%# Eval("NomeFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:Label ID="CapaFilmeLabel" runat="server" Text='<%# Eval("CapaFilme") %>' />
                                    </td>
                                </tr>
                            </AlternatingItemTemplate>
                            <EditItemTemplate>
                                <tr style="background-color: #999999;">
                                    <td>
                                        <asp:Button ID="UpdateButton" runat="server" CommandName="Update" 
                                            Text="Update" />
                                        <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" 
                                            Text="Cancel" />
                                    </td>
                                    <td>
                                        <asp:TextBox ID="IdFilmeTextBox" runat="server" Text='<%# Bind("IdFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:TextBox ID="NomeFilmeTextBox" runat="server" 
                                            Text='<%# Bind("NomeFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:TextBox ID="CapaFilmeTextBox" runat="server" 
                                            Text='<%# Bind("CapaFilme") %>' />
                                    </td>
                                </tr>
                            </EditItemTemplate>
                            <EmptyDataTemplate>
                                <table runat="server" 
                                    style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
                                    <tr>
                                        <td>
                                            No data was returned.</td>
                                    </tr>
                                </table>
                            </EmptyDataTemplate>
                            <InsertItemTemplate>
                                <tr style="">
                                    <td>
                                        <asp:Button ID="InsertButton" runat="server" CommandName="Insert" 
                                            Text="Insert" />
                                        <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" 
                                            Text="Clear" />
                                    </td>
                                    <td>
                                        <asp:TextBox ID="IdFilmeTextBox" runat="server" Text='<%# Bind("IdFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:TextBox ID="NomeFilmeTextBox" runat="server" 
                                            Text='<%# Bind("NomeFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:TextBox ID="CapaFilmeTextBox" runat="server" 
                                            Text='<%# Bind("CapaFilme") %>' />
                                    </td>
                                </tr>
                            </InsertItemTemplate>
                            <ItemTemplate>
                                <tr style="background-color: #E0FFFF;color: #333333;">
                                    <td>
                                        <asp:Label ID="IdFilmeLabel" runat="server" Text='<%# Eval("IdFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:Label ID="NomeFilmeLabel" runat="server" Text='<%# Eval("NomeFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:Label ID="CapaFilmeLabel" runat="server" Text='<%# Eval("CapaFilme") %>' />
                                    </td>
                                </tr>
                            </ItemTemplate>
                            <LayoutTemplate>
                                <table runat="server">
                                    <tr runat="server">
                                        <td runat="server">
                                            <table ID="itemPlaceholderContainer" runat="server" border="1" 
                                                style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
                                                <tr runat="server" style="background-color: #E0FFFF;color: #333333;">
                                                    <th runat="server">
                                                        IdFilme</th>
                                                    <th runat="server">
                                                        NomeFilme</th>
                                                    <th runat="server">
                                                        CapaFilme</th>
                                                </tr>
                                                <tr ID="itemPlaceholder" runat="server">
                                                </tr>
                                            </table>
                                        </td>
                                    </tr>
                                    <tr runat="server">
                                        <td runat="server" 
                                            style="text-align: center;background-color: #5D7B9D;font-family: Verdana, Arial, Helvetica, sans-serif;color: #FFFFFF">
                                        </td>
                                    </tr>
                                </table>
                            </LayoutTemplate>
                            <SelectedItemTemplate>
                                <tr style="background-color: #E2DED6;font-weight: bold;color: #333333;">
                                    <td>
                                        <asp:Label ID="IdFilmeLabel" runat="server" Text='<%# Eval("IdFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:Label ID="NomeFilmeLabel" runat="server" Text='<%# Eval("NomeFilme") %>' />
                                    </td>
                                    <td>
                                        <asp:Label ID="CapaFilmeLabel" runat="server" Text='<%# Eval("CapaFilme") %>' />
                                    </td>
                                </tr>
                            </SelectedItemTemplate>
                        </asp:ListView>
                    </td>
                </tr>
            </table>
            <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="PesquisarPorIdLista"
                TypeName="Jogo.Filme">
                <SelectParameters>
                    <asp:ControlParameter ControlID="TreeView1" DefaultValue="0" Name="idFilme" PropertyName="SelectedValue"
                        Type="String" />
                </SelectParameters>
            </asp:ObjectDataSource>
            &nbsp;</div>
        </form>
    </body>
    </html>

    Classe de Filmes

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data;
    namespace Jogo
    {
        public class Filme
        {
            private DataTable mDataTable;
            private string categoria;
            public string Categoria
            {
                get { return categoria; }
                set { categoria = value; }
            }
            private string nomeFilme;
            private string idFilme;
            public string IdFilme
            {
                get { return idFilme; }
                set { idFilme = value; }
            }
            public string NomeFilme
            {
                get { return nomeFilme; }
                set { nomeFilme = value; }
            }
            private string capaFilme;
            public string CapaFilme
            {
                get { return capaFilme; }
                set { capaFilme = value; }
            }
            public Filme() {
                CriarTabela();
            }
            public DataTable Pesquisar()
            {
                return mDataTable;
            }
            public IEnumerable<Filme> PesquisarPorId(string idFilme)
            {
                if (idFilme == null)
                {
                    return null;
                }
                return mDataTable.Select("IdFilme = " + idFilme).Select(r => r.ItemArray[0] as Filme);
            }
            public Filme PesquisarPorIdLista(string idFilme)
            {
                foreach(DataRow linha in mDataTable.Rows)
                {
                    if(linha["IdFilme"].Equals(idFilme))             
                    {
                        List<Filme> lista = new List<Filme>();
                        Filme novo = new Filme();
                        novo.Categoria= linha["Categoria"].ToString();
                        novo.NomeFilme = linha["NomeFilme"].ToString();
                        novo.capaFilme = linha["CapaFilme"].ToString();
                        novo.idFilme = linha["IdFilme"].ToString();
                        return novo;
                    }
                }
                return null;
            }
            public void Editar(Filme filme)
            {
                foreach (DataRow linha in mDataTable.Rows)
                {
                    if (linha["IdFilme"].Equals(filme.IdFilme))
                    {
                        linha["IdFilme"] = filme.IdFilme;
                        linha["nomeFilme"] = filme.NomeFilme;
                        linha["capaFilme"] = filme.CapaFilme;
                        linha["categoria"] = filme.Categoria;
                    }
                }
            }
            private void CriarTabela()
            {
                mDataTable = new DataTable();
                #region Colunas
                DataColumn mDataColumn;
                mDataColumn = new DataColumn();
                mDataColumn.DataType = Type.GetType("System.String");
                mDataColumn.ColumnName = "categoria";
                mDataTable.Columns.Add(mDataColumn);
                mDataColumn = new DataColumn();
                mDataColumn.DataType = Type.GetType("System.String");
                mDataColumn.ColumnName = "capaFilme";
                mDataTable.Columns.Add(mDataColumn);
                mDataColumn = new DataColumn();
                mDataColumn.DataType = Type.GetType("System.String");
                mDataColumn.ColumnName = "nomeFilme";
                mDataTable.Columns.Add(mDataColumn);
                mDataColumn = new DataColumn();
                mDataColumn.DataType = Type.GetType("System.String");
                mDataColumn.ColumnName = "idFilme";
                mDataTable.Columns.Add(mDataColumn);
               // mDataTable.PrimaryKey = new DataColumn[] { mDataColumn };
                #endregion
                //==================================
                DataRow linha;
                linha = mDataTable.NewRow();
                linha["idFilme"] = "0";
                linha["nomeFilme"] = "Transformers";
                linha["capaFilme"] = "imagens/transformers.jpg";
                linha["categoria"] = "Ficção";
                mDataTable.Rows.Add(linha);
                linha = mDataTable.NewRow();
                linha["idFilme"] = "1";
                linha["nomeFilme"] = "Lanterna Verde";
                linha["capaFilme"] = "imagens/lanterna.jpg";
                linha["categoria"] = "Ação";
                mDataTable.Rows.Add(linha);
                linha = mDataTable.NewRow();
                linha["idFilme"] = "2";
                linha["nomeFilme"] = "Guia dos Mochileiros da Galáxia";
                linha["capaFilme"] = "imagens/guia.jpg";
                linha["categoria"] = "Comédia";
                mDataTable.Rows.Add(linha);
                linha = mDataTable.NewRow();
                linha["idFilme"] = "3";
                linha["nomeFilme"] = "Guia dos Mochileiros da Galáxia";
                linha["capaFilme"] = "imagens/guia.jpg";
                linha["categoria"] = "Comédia";
                mDataTable.Rows.Add(linha);
                linha = mDataTable.NewRow();
                linha["idFilme"] = "4";
                linha["nomeFilme"] = "Up Adventures";
                linha["capaFilme"] = "imagens/guia.jpg";
                linha["categoria"] = "Animação 3D";
                mDataTable.Rows.Add(linha);
                linha = mDataTable.NewRow();
                linha["idFilme"] = "5";
                linha["nomeFilme"] = "Beavis & Butt-Head";
                linha["capaFilme"] = "imagens/guia.jpg";
                linha["categoria"] = "Desenho";
                mDataTable.Rows.Add(linha);
                linha = mDataTable.NewRow();
                linha["idFilme"] = "6";
                linha["nomeFilme"] = "Duro de Matar";
                linha["capaFilme"] = "imagens/guia.jpg";
                linha["categoria"] = "Ação";
                mDataTable.Rows.Add(linha);
            }
        }
    }

    Resultado:


    Rodrigo Reis Ferreira
    Microsoft Certified

    segunda-feira, 14 de maio de 2012 12:07