Bonjour (désolé c'est encore moi...),
Je developpe un intranet avec lequel un utilisateur peut affiner les resultat de sa recherche en navigant dans un TreeView. A gauche, le TreeView en question et a droite, un DataGrid qui contient tous les documents fils depuis le noeud du TreeView (les documents ne sont pas des noeuds, mais sont soumis a la hierarchie de l'arbre).
Lorsque l'utilisateur selectionne un noeid je dois envoyer au DataGrid les données necessaire pour permettre d'afficher les documents recherchés depuis un Bdd. Jusque la ca va pas si mal.
Mon probleme actuellement c'est que lorsque l'utilisateur selectionne un noeud du TreeView, le DataGrid a "un coup de retard".
En y reardant de plus pres, lorsque je selectionne mon noeud, la page est rechargé et l'evenement de la selection est consomé... Je ne comprend pas pourquoi ma page se recharge AVANT que l'evenement de sa precedente ne soit consomé...
Ca fait : *Selection du noeud* ... Page_Load->Evenement_Selection
Je ne comprend pas.
Voila le code de l'evenement (OnSelectedNodeChange, propre au TreeView)
C'est dans la classe de l'arbre.
Le Page_Load du dataGrid est le suivant :
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 // Evenement lors de la selection private void ST_SelectedIndexChange(object sender, EventArgs e) { ItvTreeKey cur = null; ItvTreeKeyCollection tkeys = (ItvTreeKeyCollection)Session["keys"]; Docmat.UserControls.Content sync = new Docmat.UserControls.Content(); cur = tkeys.Get(Int32.Parse(STree.SelectedNode.Value)); Session["hb"] = cur.Hb; Session["lb"] = cur.Lb; Session["lvl"] = cur.Lvl; Session["name"] = cur.Name; } private void InitializeComponent() { this.STree.SelectedNodeChanged += new System.EventHandler(ST_SelectedIndexChange); }
Je suppose que ce genre de probleme est recurent, mais je n'ai rien trouvé en cherchant sur le forum...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void Page_Load(object sender, EventArgs e) { this.getDocs(); DG_Content.DataSource = (DataSet)(Session["dataHolder"]); DG_Content.DataBind(); }
J'ai bien pensé a recharger la page, mais qd ? vu qu'il s'agit de deux UserControls differents je n'ai pas accès au control lors de la selection du noeud.
Merci d'avance de votre aide, j'ai vraiment besoin d'une explication.
Partager