2010-11-19 4 views
-1

У меня есть TreeView в моей веб-форме, и мне нужно, чтобы он оставался в фокусе после выбора. В любом случае, я могу это достичь?TreeView теряет фокус после события 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

Hi Lyle! Попытайтесь привыкнуть к тому, чтобы пометить ответ как правильный или полезный ... Рядом с каждым ответом есть галочка, которую вы можете щелкнуть, если хотите отметить ее как таковую. Вы заработаете очки репутации для маркировки одного, и ответчик заработает очки за помощь. Благодаря! –

ответ

2

Вы теряете фокус из-за постбэк от OnSelectedNodeChanged события ... в то время как значения в TreeView сохраняется, свойство, такие как целенаправленный контроль не осуществляется в ViewState.

В вашем случае загрузки страницы, попробуйте следующее:

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


Edit:

TreeView действительно есть ViewState; страница не отслеживает, какой элемент управления имеет фокус.

Если вы беспокоитесь только о сохранении выбранного узла, есть способы прокрутки элемента в виде в javascript. См. here или here.

Если вы хотите избежать проблем с обратной передачей, вы можете работать с деревом на стороне клиента, используя javascript. Некоторые превосходные примеры: here.

+0

, который не работает – Lyle

+0

Вы хотите сосредоточиться на определенном узле на дереве? Вы имеете в виду, что хотите что-то выбрать или сосредоточиться на контроле? –

+0

Если древовидная структура заполнена множеством элементов, то при выборе листового узла она возвращается к вершине древовидной структуры после обратной передачи. Я бы хотел, чтобы он сосредоточился на выбранном узле. – Lyle

Смежные вопросы