akira3
Messages postés25Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention11 décembre 2006
-
23 nov. 2006 à 09:17
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
23 nov. 2006 à 19:36
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..
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 23 nov. 2006 à 19:36
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 ?