bonjour,
en suivant un post de ce forum, j'ai voulu utiliser une fonction recursive afin de creer un treeview. seulement au lancement de la page, cette derniere n'arrive pas a se charger completement et se bloque. je m'y suis certainement mal pris, mais je ne sais pas trop comment resoudre ce petit soucis.
je recupere mes donnees a partir d'une procedure:
voici ma fonction recursive:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public DataSet Get_Tree_Data() { OracleCommand cmd = PNSConnection.CreateCommand(); cmd.Parameters.Clear(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "pns_lookups.get_tree_data"; cmd.Parameters.Add(new OracleParameter("tree_cur", OracleType.Cursor)); cmd.Parameters["tree_cur"].Direction = ParameterDirection.Output; OracleDataAdapter da = new OracleDataAdapter(); da.SelectCommand = cmd; DataSet ds = new DataSet(); da.Fill(ds,"tree_cur"); return ds; }
et enfin, dans le Page_load, je creer le premier node et j'appelle la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 private void GetItem(int IdParent, TreeNode node) { DataSet ItemMenu = new DataSet(); ItemMenu = dbaccess.Get_Tree_Data(); foreach (DataRow row in ItemMenu.Tables[0].Rows) { if (Convert.ToInt32(row["dnod_id_parent"].ToString()) == IdParent) { TreeNode C_node = new TreeNode(); C_node.Text = row["title"].ToString(); C_node.Value = row["id"].ToString(); node.ChildNodes.Add(C_node); GetItem(Convert.ToInt32(row["id"].ToString()),C_node); } } }
voila si quelqu'un pouvait m'eclairer merci d'avance .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected void Page_Load(object sender, EventArgs e) { dbaccess.connectToDatabase(); if (!IsPostBack) { TreeNode node = new TreeNode("NodeParent"); TVmenu.Nodes.Add(node); GetItem(0, node); } }
A++
Partager