2011-04-14 38 views
1

有沒有什麼辦法在選擇節點兩次時引發SelectedNodeChanged事件。我不能使用代碼「treeview.SelectedNode.Selected = false」,因爲我必須顯示樹的選定節點,但同時,我想要一些事件,以便我可以捕獲節點上的點擊。有沒有辦法做到這一點?Asp.net樹視圖 - 當點擊同一個節點時沒有觸發事件

在此先感謝

回答

1

你可以做的是將代碼放在像預渲染另一個事件,你可以決定是否選擇已經由具有布爾類變量發生變化,blnIsChanged例如。在SelectedNodeChanged事件中,此值具有默認值false,僅設置爲true,因此,如果blnIsChanged = false並且執行了prerender(或者在SelectedNodeChanged事件後觸發的任何事件),則可以執行代碼中的if語句沒有,如果它=真。

例子:

Partial Class YourPageWithaAtreeView 
    Inherits System.Web.UI.Page 
Dim _blnSelectionChanged as Boolean = false 



Protected Sub MyTree_SelectedNodeChanged(byval sender as object, byval e as eventargs) handles MyTree.SelectedNodeChanged 
    _blnSelectionChanged = true //The selection changed 
End Sub 
Protected Sub MyTree_PreRender(byval sender as object, byval e as eventargs) handles MyTree.PreRender 
    if _blnSelectionChanged = false Then 
     //Because the boolean is not true that means that 
     //the selected node didn't change 
     //insert the code you want to execute when the user 
     //clicks the already selected node 
    end if 
End Sub 
+0

問題是不是這樣。當我選擇同一個節點兩次。第一次,這個事件被解僱了,但是第二次沒有開火。 – Ankit 2011-04-14 17:17:40

+0

因爲第二次選擇沒有改變,所以selectednodechanged事件不會觸發。我的建議是跟蹤所選節點是否改變了自己,以及它是否不在單獨的事件中執行您的代碼的方法。如果你想讓我用我可以的代碼示例編輯我的答案。 – 2011-04-14 17:19:21

+0

是的。請輸入代碼示例 – Ankit 2011-04-15 10:44:53