Telerik バージョンを使用しています: 2009.3.1208.0
私の仕事は、ノード (ノードの右側) に矢印を追加して、ユーザーがノードを左クリックしてコンテキスト メニューにアクセスできるようにすることです。
nodetemplate を作成し (インターフェイスをサブスクライブ)、クラスを 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
例外はすべて問題ないようです:
ノードの 1 つを展開すると、展開されているノードに対して NodeExpand イベントが間違った値を送信します。たとえば、ノード 3 を展開すると、ノード 1 の値 (e.Node.Value) が表示されます。詳細については、下の図を参照してください。その結果、間違った子ノードがロードされます。
質問:
1) NodeTemplate が追加されているときに NodeExpand が壊れているのはなぜですか?
2) ノードに矢印を追加して、NodeTemplate を上書きせずに左クリックできるようにする方法はありますか?