2009-10-22 7 views
1

Je viens de passer à l'utilisation des adaptateurs CSS pour mon contrôle TreeView sur une de mes pages ASPX. Maintenant, pour une raison quelconque, je ne peux pas utiliser la méthode SelectedNode sauf dans mon événement OnClick(). Tous les autres événements montrent que SelectedNode est NULL. J'utilise actuellement un tas d'étiquettes non visibles pour stocker des informations sur les arbres chaque fois que quelqu'un clique sur un nœud. Très, très, très mauvais moyen d'utiliser ce contrôle. Quel est le secret pour obtenir le contrôle dans le code lorsque les adaptateurs CSS sont activés?asp.net arbre css adaptateur selectedNode est null?

Répondre

1

L'adaptateur pour le contrôle TreeView a une certaine gestion viewstate, mais vous avez raison que la propriété de nœud sélectionnée est null en publication.

Si vous passez la souris sur le nœud racine la barre d'état du navigateur affichera quelque chose comme:

javascript:__doPostBack('controlid', 'eventargument'); 
//or 
    javascript:__doPostBack('tv', 'srootnodevalue\\childnodevalue'); 

Vous pouvez prendre l'argument de l'événement dans le code derrière lequel décrit le nœud que vous accédez et sa valeur une chaîne comme 'node \ value'.

 if (Request.Form["__EVENTTARGET"] != null && Request.Form["__EVENTARGUMENT"] != null) 
     { 
      if (Request.Form["__EVENTTARGET"].Equals("tv")) //tv is my treeview control id, and the first parameter in __doPostBack() 
       Tv_SelectedNodeChanged(Request.Form["__EVENTARGUMENT"]); 
     } 


     protected void Tv_SelectedNodeChanged(string argument) 
     { 
      //process the argument string 'srootnodevalue\childnodevalue' 
     } 

Le viewstate treeview semble au courant du noeud sélectionné par la représentation de l'adaptateur comme class = « réSEAU-TreeView-Feuille-réSEAU TreeView-sélectionné » quand il rend.

encore, il peut y avoir une plus belle façon de le faire ...

+0

ont également un coup d'œil à ce poste ... http://cssfriendly.codeplex.com/Thread/View.aspx?ThreadId=66248 – CRice

+0

Désolé les gars - n'ont pas encore été à ce problème particulier. J'ai encore besoin de travailler à travers cela, mais j'ai encore 15 directions différentes. –