2010-11-19 7 views
-1

웹 양식에 TreeView이 있는데 선택 후 포커스를 유지해야합니다. 어쨌든 내가 이걸 이룰 수 있니?클릭 이벤트 후 TreeView가 포커스를 잃습니다.

<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

안녕 Lyle! 답변을 정확하거나 도움이되는 것으로 표시하는 습관을 갖도록 시도하십시오. 응답으로 표시하려면 클릭 할 수있는 각 응답 옆에 확인 표시가 있습니다. 점수를 매기는 데 평판 포인트를 얻게되고, 응답자는 도움을 얻을 점수를 얻습니다. 감사! –

답변

2

당신 때문에 OnSelectedNodeChanged 이벤트 트리 뷰의 값이 유지되는 동안 ..., 포커스 제어와 같은 속성이 viewstate가에서 수행되지 않습니다에서 다시 게시의 초점을 잃고있다. 페이지로드 이벤트에서

,이 시도 :

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


편집 :

트 리뷰는 viewstate가를 가지고있다; 해당 페이지는 포커스가있는 컨트롤을 추적하지 않습니다.

선택한 노드를 유지하는 것에 대해서만 걱정한다면 javascript에서 요소를 스크롤하는 방법이 있습니다. here 또는 here을 참조하십시오.

포스트 백 문제를 피하려면 자바 스크립트를 사용하여 클라이언트 측 트리 뷰를 사용할 수 있습니다. 몇 가지 훌륭한 예가 here입니다.

+0

이 작동하지 않습니다. – Lyle

+0

트리의 특정 노드에 포커스를 둡니까? 무언가를 선택하거나 컨트롤에 집중하고 싶다는 뜻입니까? –

+0

트리 뷰에 항목이 많이있는 경우 리프 노드를 선택하면 다시 게시 할 때 트 리뷰의 맨 위로 스크롤됩니다. 선택된 노드에 초점을 맞추고 싶습니다. – Lyle

관련 문제