Re-load treeview

Signaler
Messages postés
25
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
11 décembre 2006
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
bonjour,

Dans l'évenement load de mon treeview je rattache les elements de ma base de données à mon treeview.
quand j'effectue des mises a jour sur les elements de ma base de données il recharge les nodes mais deux,trois fois d'affilé.
à cause de mon node principal que j'ai sauvegardé dans mon objet session(je le charge dans mon load de la page et le sauvegarde dans le unload.
Auriez vous une idée à me proposer ?j'ai déja essayé de clear mes nodes ou bien de faire un(! ispostback) dans le load du treeview  mais rien n'y fait..








protected



void
TreeView2_Load(

object
sender,

EventArgs
e){

db.tableCatégorie1();


//select* from categorie






for
(

int
i = 0; i < db.DS.Tables[

"r1"
].Rows.Count; i++){


string
c =

""
+ db.DS.Tables[

"r1"
].Rows[i][

"NomCatégorie"
];


int
idc =

int
.Parse(

""
+ db.DS.Tables[

"r1"
].Rows[i][

"idCatégorie"
]);


TreeNode
p;p =


new



TreeNode
(c);p.ChildNodes.Add(


new



TreeNode
(

"ajouter une sous-catégorie"
));p.ChildNodes.Add(


new



TreeNode
(

"supprimer"
));root2.ChildNodes.Add(p);

root2.CollapseAll();


//select*from souscategorie

db.afficherscategories();







for
(

int
j = 0; j < db.DS.Tables[

"allsc"
].Rows.Count; j++){


try

{







//récup de catégorie dans sous catégorie






int
idc2 =

int
.Parse(

""
+ db.DS.Tables[

"allsc"
].Rows[i][

"idCatégorie"
]);


string
sc = db.treetablesousCatégorie(idc);


TreeNode
t;t =


new



TreeNode
(sc);p.ChildNodes.Add(t);

db.tableCatégorie1();

}


catch
(

Exception
ex2){

labelerreur.Text = ex2.Message;

db.tableCatégorie1();

}

}

db.tableCatégorie1();

}

TreeView2.Nodes.Clear();

TreeView2.Nodes.Add(root2);

}


et dans le load me ma page



if
(Session[

"root2"
] !=

null
)



{


root2 = (TreeNode)Session[
"root2"];


}



else



{


root2 =




new



TreeNode
();root2.Text =


"catégorie"
;root2.ChildNodes.Add(


new



TreeNode
(

"new catégorie"
));


this
.TreeView2.Nodes.Add(root2);Session[


"root2"
] = root2;}

voila!le truc basique quoi!mais dés que je fais des mises à jour mon root2 fait sa merde.
pourriez vous m'aider s'il vous plait..

2 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
Question déplacer dans le forum www.aspfr.com

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
Bonjour,

n'utilises pas l'evenement unload de la page car celui ci sera appellé quand bon semblera au garbage collector ... utilises plutot la méthode Render (overridable).

En ce qui concerne ton problème je ne comprend pas ce que tu veux dire par "quand j'effectue des mises a jour sur les elements de ma base de données il recharge les nodes mais deux,trois fois d'affilé." tu peux expliciter ?

<hr />Cyril - MVS - MCP