none
pegar valor node selecionado no treeview RRS feed

  • Pergunta

  • ola bom dia tenho o seguinte codigo para carregar meu treeview.

     

     private void preenchetreeview(DataTable dt)
        {

            //carrego o pai d etodos
            TreeNode node = new TreeNode("Menus", "", "image/xpDesktop.gif", "", "");

            TreeView1.Nodes.Clear();

            TreeView1.Nodes.Add(node);//insere na base da tree
            node.ExpandAll();
           
            try
            {

                   //carrego menus principais
                    foreach (DataRow dr in dt.Rows)
                    {
                        TreeNode node1 = new TreeNode(Convert.ToString(dr["nome"]), Convert.ToString(dr["id"]), "image/Folder.gif", "", "");
                       node1.ExpandAll();

                       TreeView1.Nodes[0].ChildNodes.Add(node1);
                      
                       DataTable dtsub = new DataTable();

                       //carrego todos filhos de cada node pai
                       dtsub = CarregaSubmenus(Convert.ToInt32(dr["id"]));
                       foreach (DataRow dr1 in dtsub.Rows)
                       {

                           // TreeView1.Nodes[0].ChildNodes[0].Expanded = true;
                           TreeNode nodesub = new TreeNode(Convert.ToString(dr1["nomesubmenu"]), Convert.ToString(dr1["idmenu"]), "image/BookY.gif", "", "");
                           //Modificação para pegar a posição do node
                           int indexNodeParent = TreeView1.Nodes[0].ChildNodes.IndexOf(node1);
                           TreeView1.Nodes[0].ChildNodes[indexNodeParent].ChildNodes.Add(nodesub); //carrego os filhos

                       }
                    }

            }
            catch (Exception ex)
            {
               
                throw new Exception ("Erro ao Carregar o Controle!" + ex.Message);
            }

        }

    ===

    neste evento pego o valor do node selecionado

     

       protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
             valor = TreeView1.SelectedValue;
            
        }

    ate ai funfa mas quando clico no botao gravar que uso gravar o sub menu a varialvel vem null

    alguem pode me ajudar.

     

    code do meu botao gravar

     

       try
            {

                if (CheckBox1.Checked == true)
                {
                    Grava_Submenus(Convert.ToInt32(valor));
                }
                else
                {
                if (txtmenu.Text.Trim() == string.Empty)
                {
                    lblvalfild.Text = "* Campo Obrigatorio";
                    lblvalfild.Visible = true;
                }
                else
                {
                    OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("./app_data/image.accdb"));

                    string sql = "INSERT INTO menus (nome,data_criacao)values(@nome,@data)";
                    OleDbCommand cmd = new OleDbCommand(sql, conexao);

                    cmd.Parameters.AddWithValue("@nome", txtmenu.Text.ToUpper());
                    cmd.Parameters.AddWithValue("@data", txtdata.Text);

                    conexao.Open();
                    cmd.ExecuteNonQuery();
                    Label2.Text = "Dados Gravados com Sucesso";
                    txtmenu.Text = string.Empty;
                    txtdata.Text = string.Empty;
                 
                }
                }
            }
            catch (Exception ex)
            {

                throw new Exception("Falha ao Gravar o Menu" + ex.Message);
            }

    tentei direto assim

    TreeView1.SelectedValue sem passar para variavel mas mesmo problema.

    quinta-feira, 21 de julho de 2011 13:29

Respostas

Todas as Respostas