Asp.net树视图-单击同一节点时未触发事件



是否有任何方法在两次选择节点时引发SelectedNodeChanged事件?我不能使用代码"treeview.SelectedNode"。Selected = false"因为我必须显示树的选定节点,但同时,我想要一些事件,这样我就可以捕获节点上的点击。有办法吗?

Thanks in advance

您可以做的是将代码放在像预呈现器这样的另一个事件中,您可以通过使用布尔类变量(例如blnIsChanged)来确定选择是否已更改。该值的默认值为false,仅在SelectedNodeChanged事件中设置为true,因此您可以在预呈现器(或在SelectedNodeChanged事件后触发的任何事件)中使用if语句,如果blnIsChanged = false则执行代码,如果blnIsChanged = true则不执行任何操作。

的例子:

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/

相关内容

  • 没有找到相关文章

最新更新