c# - Telerik TreeView |使用 NodeTemplate 时,NodeExpand 事件提供了错误的节点值

标签 c# asp.net vb.net treeview telerik

我使用的是 Telerik 版本:2009.3.1208.0

我的任务是向节点添加一个箭头(在节点的右侧),以便人们可以左键单击它并访问上下文菜单。

enter image description here

我能够通过创建一个节点模板(订阅一个接口(interface))然后将我的类分配给 NodeTemplate 属性(在页面初始化上)来做到这一点

代码如下:

Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports Telerik.Web.UI

    Public Class MyNodeTemplate
        Implements ITemplate

        Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
            Dim newLabel As New Label()
            newLabel.CssClass = "nodeLabel"
            newLabel.Text = DirectCast(container, RadTreeNode).Text

            Dim arrowDiv As New System.Web.UI.HtmlControls.HtmlGenericControl("DIV")
            arrowDiv.Attributes.Add("class", "nodeRightClickArrow")
            arrowDiv.Attributes.Add("onclick", "LeftClickContextMenuClick(event, this);")

            container.Controls.Add(newLabel)
            container.Controls.Add(arrowDiv)
        End Sub

    End Class

一切似乎都很好除了:

展开其中一个节点时,NodeExpand 事件会为正在展开的节点发送错误的值。例如,如果我展开节点 3,它会为我提供节点 1 的值 (e.Node.Value)。有关更多说明,请参见下图。结果加载了错误的子节点。 enter image description here

问题:

1) 为什么在添加 NodeTemplate 时 NodeExpand 被破坏?

2) 有什么办法可以在节点上添加一个箭头,这样人们就可以在不覆盖 NodeTemplate 的情况下左键单击它?

最佳答案

我认为你需要使用 Node Click 方法,在节点中点击你的代码

protected void treeView_NodeClick(object sender, RadTreeNodeEventArgs e)
{
    int id;
    int.TryParse(e.Node.Value, out id);
    e.Node.Expanded = true // Expand the node manually, or IsExpanded, not remember
}

需要工作。此外,您可以使用手动冷扩展节点。 Telerik Documentation说这个事件在节点展开时发生,所以这意味着当节点展开时会发生什么,我认为你需要展开节点。

关于c# - Telerik TreeView |使用 NodeTemplate 时,NodeExpand 事件提供了错误的节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11351702/

相关文章:

c# - MVC6 - 如果(复选框勾选)则删除线

.net - 在 VB.NET 中将 bool 值转换为字节

c# - 使用 ASP.Net vNext 发送邮件

c# - 生产环境中的 HttpPostedFileBase null,但测试环境中不是

asp.net - 如何修改Web安装项目中的文件夹权限?

vb.net - 如何发现用户的桌面文件夹?

vb.net - 使用 excel 数据源以 vb.net 形式绘制图表

数据库中的 C# 枚举

c# - 如何从源代码 View (aspx) 在 C# 中为来自按钮的事件添加事件处理程序

c# - 如何根据单元格的值更改 WPF ListView 单元格中的字体颜色?