New to telerik and trying to use the RadTreeview to replace our old tree. I am trying to display more that one image on a node.
something like this
Root
|
------Item1 (Image1) (Image2) (Image 3)
|
------Item1 (Image1) (Image2) (Image 3)
Is this possible? if so, can you provide an example of how to do?
something like this
Root
|
------Item1 (Image1) (Image2) (Image 3)
|
------Item1 (Image1) (Image2) (Image 3)
Is this possible? if so, can you provide an example of how to do?
3 Answers, 1 is accepted
0
Accepted
0
Aston
Top achievements
Rank 1
answered on 06 Feb 2013, 11:08 PM
Princy, Thanks for the reply it got me further along, I do have another question. How do I catch the click event from a control in my template. I posted my mock test code below. I need to know when each of the links are clicked.
Imports Telerik.Web.UIPublic Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load TreeInit() End Sub Public Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click Dim newNode As New AttachmentImageNode("ImageNode") Dim newNode2 As New AttachmentFolderNode("FolderNode") Dim tvNodes As Telerik.Web.UI.RadTreeNodeCollection = RadTreeView1.Nodes tvNodes.Add(newNode) tvNodes.Add(newNode2) RadTreeView1.DataBind() End Sub Public Sub TreeInit() Dim newNode As New AttachmentImageNode("ImageNode") Dim newNode2 As New AttachmentFolderNode("FolderNode") Dim tvNodes As Telerik.Web.UI.RadTreeNodeCollection = RadTreeView1.Nodes tvNodes.Add(newNode) tvNodes.Add(newNode2) RadTreeView1.DataBind() End Sub Private Sub RadTreeView1_NodeClick(sender As Object, e As RadTreeNodeEventArgs) Handles RadTreeView1.NodeClick '// End SubEnd ClassPublic Class AttachmentImageNode Inherits RadTreeNode Dim tp As New AttachmentImageNodeTemplate Public Sub New(nodeText As String) MyBase.Text = nodeText MyBase.ImageUrl = ".\Images\45.png" tp.InstantiateIn(Me) End SubEnd ClassPublic Class AttachmentFolderNode Inherits RadTreeNode Dim tp As New AttachmentFolderNodeTemplate Public Sub New(nodeText As String) MyBase.Text = nodeText MyBase.ImageUrl = ".\Images\book.png" tp.InstantiateIn(Me) End SubEnd ClassPublic Class AttachmentImageNodeTemplate Implements System.Web.UI.ITemplate Public Sub InstantiateIn(container As Control) Implements ITemplate.InstantiateIn Dim img1 As New Image Dim img2 As New Image Dim img3 As New Image Dim img4 As New Image Dim label1 As New Label Dim lbl_space1 As New Label Dim lbl_space2 As New Label Dim lbl_space3 As New Label Dim lbl_space4 As New Label Dim Link1 As New LinkButton img1.ImageUrl = ".\Images\edit.png" img1.ToolTip = "Edit" Link1.Controls.Add(img1) Link1.ID = "Link1" Dim Link2 As New LinkButton img2.ImageUrl = "\Images\Close_box.png" img2.ToolTip = "Delete" Link2.Controls.Add(img2) Link2.ID = "Link2" Dim Link3 As New LinkButton img3.ImageUrl = "\Images\Review.png" img3.ToolTip = "Review" Link3.Controls.Add(img3) Link3.ID = "Link3" Dim Link4 As New LinkButton img4.ImageUrl = "\Images\link.png" img4.ToolTip = "History" Link4.Controls.Add(img4) Link4.ID = "Link4" lbl_space1.Text = " " lbl_space2.Text = " " lbl_space3.Text = " " lbl_space4.Text = " " Dim rtn As RadTreeNode = DirectCast(container, RadTreeNode) label1.Text = rtn.Text AddHandler label1.DataBinding, AddressOf label1_DataBinding container.Controls.Add(label1) container.Controls.Add(lbl_space1) container.Controls.Add(Link1) container.Controls.Add(lbl_space2) container.Controls.Add(Link2) container.Controls.Add(lbl_space3) container.Controls.Add(Link3) 'container.Controls.Add(lbl_space4) 'container.Controls.Add(Link4) End Sub Private Sub label1_DataBinding(ByVal sender As Object, ByVal e As EventArgs) Dim target As Label = DirectCast(sender, Label) Dim node As RadTreeNode = DirectCast(target.BindingContainer, RadTreeNode) Dim nodeText As String = DirectCast(DataBinder.Eval(node, "Text"), String) target.Text = nodeText End SubEnd ClassPublic Class AttachmentFolderNodeTemplate Implements System.Web.UI.ITemplate Public Sub InstantiateIn(container As Control) Implements ITemplate.InstantiateIn Dim img1 As New Image Dim img2 As New Image Dim lbl_space1 As New Label Dim lbl_space2 As New Label lbl_space1.Text = " " lbl_space2.Text = " " Dim label1 As New Label img1.ImageUrl = ".\Images\Close_Box.png" img2.ImageUrl = ".\Images\edit.png" Dim Link1 As New LinkButton img1.ImageUrl = ".\Images\edit.png" img1.ToolTip = "Edit" Link1.Controls.Add(img1) Dim Link2 As New LinkButton img2.ImageUrl = "\Images\Close_box.png" img2.ToolTip = "Delete" Link2.Controls.Add(img2) Dim rtn As RadTreeNode = DirectCast(container, RadTreeNode) label1.Text = rtn.Text AddHandler label1.DataBinding, AddressOf label1_DataBinding container.Controls.Add(label1) container.Controls.Add(lbl_space1) container.Controls.Add(Link1) container.Controls.Add(lbl_space2) container.Controls.Add(Link2) End Sub Private Sub label1_DataBinding(ByVal sender As Object, ByVal e As EventArgs) Dim target As Label = DirectCast(sender, Label) Dim node As RadTreeNode = DirectCast(target.BindingContainer, RadTreeNode) Dim nodeText As String = DirectCast(DataBinder.Eval(node, "Text"), String) target.Text = nodeText End SubEnd Class0
Hello,
An easy and convenient way to catch a click event from a control in your template would be to add a handler in the code behind for that specific control. In the code snippet below you could find a demonstration of creating a link button control and attach its click event to a specific handler. This way you can implement the desired behavior when user clicks on that link button.
//code behind
Regards,
Boyan Dimitrov
the Telerik team
An easy and convenient way to catch a click event from a control in your template would be to add a handler in the code behind for that specific control. In the code snippet below you could find a demonstration of creating a link button control and attach its click event to a specific handler. This way you can implement the desired behavior when user clicks on that link button.
//code behind
Public Sub InstantiateIn(container As Control) Dim Link1 As New LinkButton Link1.Text = "link button" AddHandler Link1.Click, AddressOf Link1_Click container.Controls.Add(Link1) End SubPrivate Sub Link1_Click(sender As Object, e As EventArgs) 'here goes you custom logic Dim link As LinkButton = DirectCast(sender, LinkButton) link.Text = "Clicked" End SubRegards,
Boyan Dimitrov
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.