1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Treeview em C# aspnet

Discussão em 'Web Development' iniciada por ButterflyEffect, 27 de Março de 2008. (Respostas: 7; Visualizações: 1342)

  1. ButterflyEffect

    ButterflyEffect Power Member

    Treeview em C# aspnet Ola. Estou em estagio e precisava de fazer uma treeview (em que ja fiz o xml)e atraves dessa treeview fazer como se fosse uma griedview em que clicava num node e acedia a informação da base de dados.Alguem sabe ajudar-me e se é possivel faze-lo?
     
  2. Oi,

    Deixa ver se percebi, queres ler de uma base de dados e depois listar para uma TreeView, certo?

    Então é fácil, vais ler para um data reader, depois percorres o data reader e vais colocando na TreeView.

    Aqui tens um exemplo que fiz (um pouco a pressa) mas tem a ideia geral

    [C#]

    string strConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    SqlConnection connection = newSqlConnection(strConnString);

    SqlCommand sqlCmd = newSqlCommand("SELECT id, name FROM names", connection);
    connection.Open ();
    SqlDataReader sqlReader = sqlCmd.ExecuteReader();
    while (sqlReader.Read())
    {
    TreeView1.Nodes.Add (newTreeNode (sqlReader.GetString(1), Convert.ToString(sqlReader.GetInt64(0))));
    }

    connection.Close ();

    Espero que tenha sido util, qualquer dúvida!

    Cumps,
     
  3. ButterflyEffect

    ButterflyEffect Power Member

    Olha podias explicarme esta part de codigo
    TreeView1.Nodes.Add (newTreeNode (sqlReader.GetString(1), Convert.ToString(sqlReader.GetInt64(0))));
    ??? e posso depois no reader filtrar dados????
     
  4. Olá,

    Essa parte do código vai adicionar-te a tua TreeView varios nos de acordo com a leitura feita do reader.

    new TreeNode ([value],[field]): cria um novo nó, com value e field
    sqlReader.GetString(n) : Obtem o valor do campo 'n' da row actual (no reader)

    Sim, podes filtrar o reader.

    cumps,
     
  5. ButterflyEffect

    ButterflyEffect Power Member

    olha dame erro

     
    Última edição pelo moderador: 3 de Abril de 2008
  6. oi,

    Isso é porque muito possivelmente estaras a fazer um cast inválido, qd fazes Reader.GetString(0) tens a certeza que o field que esta na posição '0' do teu reader é uma string? e em relação ao GetInt64(1) tens a certeza que é um inteiro?

    Também poderá estar relacionado com leitura de campos que estejam a null na base de dados, para isso teras de testar:
    Reader.isNull(n) : Acho que é assim, mas não confirmo!!

    Cumps,
     
  7. ButterflyEffect

    ButterflyEffect Power Member

    OLA desculpa pergta mas o que é um cast?Sim a maioria dos campos permite null na base dados.
    Olha o meu codigo ta axim....

    Código:
    protectedvoid Page_Load(object sender, EventArgs e)
    {
    SqlConnection cnn = newSqlConnection(ConfigurationManager.ConnectionStrings["IGMConnectionString"].ConnectionString);
    SqlCommand Cmd = newSqlCommand("SELECT Fabrica,CNC,f1,s1,ae1,ap1,chatter1,outros1,f2,s2,ae2,ap2,chatter2,outros2,cod_ferramenta FROM parametros_maquinas", cnn);
    cnn.Open();
    SqlDataReader Reader = Cmd.ExecuteReader();
    while (Reader.Read())
    {
    TreeView1.Nodes.Add(new TreeNode(Reader.GetString(1), Convert.ToString(Reader.GetInt64(0))));
    }
    cnn.Close();
     
    }
    protectedvoid Onload(EventArgs e)
    {
    base.OnLoad(e);
    XmlReaderSettings setts = newXmlReaderSettings();
    setts.Schemas.Add("", this.MapPath("Consultar.xsd"));
    setts.ValidationType = ValidationType.Schema;
    setts.ValidationEventHandler += newValidationEventHandler(ProcessError);
    XmlReader reader = XmlReader.Create(this.MapPath(""), setts);
    //XmlReader = XmlReader.Create(this.MapPath("Consultar.xml"), setts);
    XmlDocument doc = newXmlDocument();
    doc.Load(reader);
    }
    // if (!ProcessOK)
    // {
    // TreeView1.DataSourceID = ""; return;}
    // Source.data = doc.InnerXml;}
    protectedvoid ProcessError (Object sender, ValidationEventArgs args)
    {
    info.Text=args.Exception.ToString(); 
    //ProcessOK=false; 
    }
     
    e no aspx
     
    <asp:TreeViewID="TreeView1"runat="server"DataSourceID="XmlDataSource1"ImageSet="Contacts"
    NodeIndent="10"ShowLines="True"LineImagesFolder="~/TreeLineImages"Width="135px">
    <ParentNodeStyleFont-Bold="True"ForeColor="#5555DD"/>
    <HoverNodeStyleFont-Underline="False"/>
    <SelectedNodeStyleFont-Underline="True"HorizontalPadding="0px"VerticalPadding="0px"/>
    <NodeStyleFont-Names="Verdana"Font-Size="8pt"ForeColor="Black"HorizontalPadding="5px"
    NodeSpacing="0px"VerticalPadding="0px"/>
    <DataBindings>
    <asp:TreeNodeBindingDataMember="Fabrica"TextField="#InnerText"ValueField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Maquina"TextField="#InnerText"ValueField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Operacao"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Estrategia"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Diametro"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Raio"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Altura"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Tipo"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="FabricanteCabeca"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="pastilhas"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="n_pastilhas"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="tipopastilhas"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="fabricante"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="grao"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Parametros"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="ParametrosFerramenta"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="parametrosfabricante"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="parametrosvarios"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="parametros2d"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="parametros2_3eixos"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="parametros5eixos"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="parametros_suportes_cone"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="ParametrosMaquina"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="CNC"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Operacao"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Estrategia"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Nome"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="media"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="maximo"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="Grupo"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="media"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="maximo"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="GrupoSimoldes"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="media"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="maximo"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="outros"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="f"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="s"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="ae"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="ap"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="chatter"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="outros"TextField="#InnerText"/>
    <asp:TreeNodeBindingDataMember="uf"TextField="#InnerText"/>
    </DataBindings>
    </asp:TreeView>
    <asp:XmlDataSourceID="XmlDataSource1"runat="server"DataFile="~/Consultar.xml"></asp:XmlDataSource>
     
    o meu xml e este
    <Consultar>
    <Ferramentas>
    <Fabrica> Fabrica</Fabrica>
    <Maquina>Maquina</Maquina>
    <Operacao>Operacao</Operacao>
    <Estrategia> Estrategia</Estrategia>
    <Parametros_Maquinas>
    <Maquinas>
    <media> Media Maquina </media>
    <maximo> Maximo Maquina</maximo>
    </Maquinas> 
    <Grupo_Maquinas> 
    <media> Media Grupo Maquinas</media>
    <maximo> Maximo Grupo Maquinas</maximo>
    </Grupo_Maquinas>
    <Grupo_Simoldes>
    <media> Media Grupo Simoldes </media>
    <maximo> Maximo Grupo Simoldes</maximo>
    </Grupo_Simoldes> 
    </Parametros_Maquinas>
    </Ferramentas>
    </Consultar>
    O que preciso de saber e ao clicar em cada nod faxer uma consulta a essa tabela ou campos.
    <Consultar>
    <Ferramentas>
    <Fabrica> Fabrica</Fabrica>
    <Maquina>Maquina</Maquina>
    <Operacao>Operacao</Operacao>
    <Estrategia> Estrategia</Estrategia>
    <Parametros_Maquinas>
    <Maquinas>
    <media> Media Maquina </media>
    <maximo> Maximo Maquina</maximo>
    </Maquinas> 
    <Grupo_Maquinas> 
    <media> Media Grupo Maquinas</media>
    <maximo> Maximo Grupo Maquinas</maximo>
    </Grupo_Maquinas>
    <Grupo_Simoldes>
    <media> Media Grupo Simoldes </media>
    <maximo> Maximo Grupo Simoldes</maximo>
    </Grupo_Simoldes> 
    </Parametros_Maquinas>
    </Ferramentas>
    </Consultar> 
     
    Última edição pelo moderador: 3 de Abril de 2008
  8. oi,

    Uma pesquisa rápida no google ia ajudar-te a saber o que é um cast!!! um cast de forma mto resumida, é uma conversão de tipos.

    faz assim, para teres a certeza que não vais ler nulos da base de dados:

    quando usares o getString ou getInt
    da1.IsDBNull(n) ? "" : da1.GetString(n);

    cumprimentos,
     

Partilhar esta Página