有沒有什麼辦法在選擇節點兩次時引發SelectedNodeChanged事件。我不能使用代碼「treeview.SelectedNode.Selected = false」,因爲我必須顯示樹的選定節點,但同時,我想要一些事件,以便我可以捕獲節點上的點擊。有沒有辦法做到這一點?Asp.net樹視圖 - 當點擊同一個節點時沒有觸發事件
在此先感謝
有沒有什麼辦法在選擇節點兩次時引發SelectedNodeChanged事件。我不能使用代碼「treeview.SelectedNode.Selected = false」,因爲我必須顯示樹的選定節點,但同時,我想要一些事件,以便我可以捕獲節點上的點擊。有沒有辦法做到這一點?Asp.net樹視圖 - 當點擊同一個節點時沒有觸發事件
在此先感謝
你可以做的是將代碼放在像預渲染另一個事件,你可以決定是否選擇已經由具有布爾類變量發生變化,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
是的,它真的煩人,有一個爲標準的TreeView控件沒有OnNodeClick()事件。
我結束了使用Telerik的版本('RadTreeView'),它支持這個事件。
另一種方式是寫自己的處理程序在一個迂迴的方式如下所述: http://www.programmersheaven.com/mb/csharp/341363/341363/event-handling-treeview/
問題是不是這樣。當我選擇同一個節點兩次。第一次,這個事件被解僱了,但是第二次沒有開火。 – Ankit 2011-04-14 17:17:40
因爲第二次選擇沒有改變,所以selectednodechanged事件不會觸發。我的建議是跟蹤所選節點是否改變了自己,以及它是否不在單獨的事件中執行您的代碼的方法。如果你想讓我用我可以的代碼示例編輯我的答案。 – 2011-04-14 17:19:21
是的。請輸入代碼示例 – Ankit 2011-04-15 10:44:53