我正在使用 Telerik 版本:2009.3.1208.0
我的任务是向节点添加一个箭头(在节点的右侧),以便人们可以左键单击它并访问上下文菜单。
我能够通过创建节点模板(订阅接口)然后将我的类分配给 NodeTemplate 属性(在 Page Init 上)来做到这一点
这是代码:
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)。有关更多说明,请参见下图。结果加载了错误的子节点。
问题:
1) 为什么在添加 NodeTemplate 时 NodeExpand 会损坏?
2)有什么方法可以在节点上添加一个箭头,这样人们就可以在不覆盖NodeTemplate的情况下左键单击它?