2010-11-19 27 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

こんにちは!正解または助けとして答えを記入する習慣を身につけてみてください...あなたがそれをそれと印を付けたいと思うなら、あなたがクリックすることができる各回答の隣にチェックマークがあります。あなたは1つをマーキングするための評判ポイントを獲得し、回答者は手助けをするポイントを獲得します。ありがとう! –

答えて

2

あなたは、ツリービュー内の値が保持されている間、集中制御などのプロパティがビューステートで運ばれていません... OnSelectedNodeChangedイベントから理由ポストバックのフォーカスを失っています。あなたのページのLoadイベントで

、これを試してみてください。

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


編集:

ツリービューは、ビューステートを持っています。どのコントロールにフォーカスがあるのか​​をページは追跡しません。

選択したノードを表示し続けることだけが心配な場合は、要素をjavascriptで表示するためにスクロールする方法があります。 hereまたはhereを参照してください。

ポストバックに関する問題を回避するには、javascriptを使用してクライアント側のtreeviewで作業できます。いくつかの優れた例はhereです。

+0

は動作しません – Lyle

+0

ツリーの特定のノードにフォーカスを合わせたいですか?何かを選択したい、あるいはコントロールに焦点を当てたいと思っていますか? –

+0

ツリービューにアイテムの数が多い場合、リーフノードを選択すると、ポストバック時にツリービューの先頭にスクロールします。選択したノードに焦点を当てておきたい。 – Lyle

関連する問題