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

嗨萊爾!儘量養成將答案標記爲正確或有幫助的習慣......如果您希望將其標記爲這樣,您可以點擊每個答案旁邊的複選標記。您將獲得用於標記的信譽積分,並且回答者將獲得積分幫助。謝謝! – 2012-01-17 22:13:14

回答

2

你失去,因爲從OnSelectedNodeChanged事件......而在樹視圖中的值被保留,像聚焦控制屬性不會在ViewState攜帶的回發的重點。

在您的網頁加載事件,試試這個:

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


編輯:

樹形視圖確實有一個視圖狀態;該頁面不會跟蹤哪個控件具有焦點。

如果您只是擔心將選定的節點保留在視圖中,則可以使用javascript將元素滾動到視圖中。見herehere

如果你想避免回發問題,你可以使用javascript來處理treeview客戶端。一些優秀的例子是here

+0

不起作用 – Lyle 2010-11-23 18:47:30

+0

您是否正在關注樹上的特定節點?你的意思是你想要選擇什麼,或者把重點放在控制上? – 2010-11-29 16:52:32

+0

如果樹視圖中填充了大量項目,則當您選擇葉節點時,它將在回發時滾動回到樹視圖的頂部。我希望它能夠專注於選定的節點。 – Lyle 2010-11-30 16:31:32