2010-11-19 8 views
-1

J'ai un TreeView dans mon formulaire Web et j'en ai besoin pour rester concentré après avoir été sélectionné. Y at-il de toute façon que je peux y parvenir?TreeView perd le focus après l'événement click

<asp:TreeView ID="ReportList" runat="server" BorderWidth="0px" BorderColor="0" 
    Font-Names="Arial" Font-Size="Small" ForeColor="Blue" SelectedNodeStyle-ForeColor="Red" 
    SelectedNodeStyle-VerticalPadding="0" ExpandDepth="0" ImageSet="Arrows" EnableClientScript="False" 
    PopulateNodesFromClient="false" OnSelectedNodeChanged="TreeView_Select_Change" 
    OnTreeNodePopulate="PopulateNode" EnableViewState="true" BorderStyle="Solid" Height="600px"> 
    <LevelStyles> 
     <asp:TreeNodeStyle ChildNodesPadding="10" Font-Bold="true" Font-Size="9pt" ForeColor="LightBlue" /> 
     <asp:TreeNodeStyle ChildNodesPadding="5" Font-Bold="true" Font-Size="8pt" /> 
     <asp:TreeNodeStyle ChildNodesPadding="5" Font-Underline="true" Font-Size="8pt" /> 
     <asp:TreeNodeStyle ChildNodesPadding="10" Font-Size="8pt" /> 
    </LevelStyles> 
    <Nodes> 
     <asp:TreeNode Text="Keyon Reports" SelectAction="Expand" PopulateOnDemand="true" /> 
    </Nodes> 
</asp:TreeView> 
+0

Salut Lyle! Essayez de prendre l'habitude de marquer une réponse comme correcte ou utile ... Il y a une coche à côté de chaque réponse que vous pouvez cliquer si vous souhaitez la marquer comme telle. Vous gagnerez des points de réputation en marquant un, et le répondeur gagnera des points pour aider. Merci! –

Répondre

2

Vous êtes perdre l'attention en raison de la postback de l'événement OnSelectedNodeChanged ... tandis que les valeurs sont conservées treeview, des propriétés telles que le contrôle ciblé ne sont pas effectuées dans le viewstate.

Dans votre cas de chargement de la page, essayez ceci:

if (IsPostBack) { 
    ReportList.Focus(); 
} 


Edit:

Le TreeView a un état d'affichage; la page ne suit pas quel contrôle a le focus.

Si vous ne souhaitez conserver que le nœud sélectionné, il existe des moyens de faire défiler un élément en mode javascript. Voir here ou here.

Si vous voulez éviter les problèmes avec la publication, vous pouvez travailler avec le client treeview en utilisant javascript. Quelques excellents exemples sont here.

+0

qui ne fonctionne pas – Lyle

+0

Cherchez-vous à mettre l'accent sur un nœud spécifique de l'arbre? Voulez-vous dire que vous voulez sélectionner quelque chose ou vous concentrer sur le contrôle? –

+0

Si la vue arborescente est remplie avec beaucoup d'éléments, lorsque vous sélectionnez le nœud feuille, il revient en haut de l'arborescence lors de la publication. Je voudrais qu'il reste concentré sur le nœud sélectionné. – Lyle