Hello!
I'm still using the classic RadTreeView and can't find out why the click event is not fireing. I'm using ExpandMode="ServerSideCallBack".
Here my code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="RadTreeView.Net2" Namespace="Telerik.WebControls" TagPrefix="radT" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
asp:ScriptManager
ID
=
"SM"
runat
=
"server"
/>
<
radT:RadTreeView
ID
=
"tree"
runat
=
"server"
OnNodeClick
=
"tree_NodeClick"
OnNodeExpand
=
"tree_NodeExpand"
>
<
Nodes
>
<
radT:RadTreeNode
runat
=
"server"
ExpandMode
=
"ServerSideCallBack"
Text
=
"Test"
/>
</
Nodes
>
</
radT:RadTreeView
>
</
div
>
</
form
>
</
body
>
</
html
>
using
System;
using
Telerik.WebControls;
public
partial
class
_Default : System.Web.UI.Page {
protected
void
tree_NodeExpand(
object
sender, RadTreeNodeEventArgs e) {
var newNode =
new
RadTreeNode(
"New Node"
);
e.NodeClicked.Nodes.Add(newNode);
}
protected
void
tree_NodeClick(
object
sender, RadTreeNodeEventArgs e) {
Console.WriteLine(e.NodeClicked.Text);
}
}
Thanks for helping!
Regards,
Tonino.
7 Answers, 1 is accepted
Thank you for contacting Telerik Support.
I am afraid the classic RadTreeView is no longer supported. It is very old and many of the features and improvements added to the RadTreeView for ASP.NET AJAX are not available to it. We strongly recommend upgrading to the latest version of the controls and using the much improved version of the RadTreeView that comes with them.
Feel free to contact us again if you have more questions.
Regards,
Ivan Danchev
Telerik
See What's Next in App Development. Register for TelerikNEXT.
Hi Ivan
Thanks for your advise. I migrated to the newest version and almost works as expected. I just found, that the behaviour of the double clicking on a node text is different. I would like the node to expand/collapse on doubleclick, but I also get a node click event. Any idea on how to suppress the node click event when double clicking?
Regards,
Tonino.
You can cancel the OnClientNodeClicking event by calling the set_cancel() client-side method in its handler:
function
OnClientNodeClicking(sender, eventArgs) {
eventArgs.set_cancel(
true
);
}
Regards,
Ivan Danchev
Telerik
See What's Next in App Development. Register for TelerikNEXT.
Hi Ivan
On a single click I need the node click event.
I just want to suppress the node click event when double clicking.
I there a way to achive that?
Regards,
Tonino
Please, review the following code snippet, which shows how to achieve the desired functionality and be able to use both OnClientDoubleClick and OnClientNodeClicking events:
<
telerik:RadTreeView
ID
=
"RadTreeView1"
runat
=
"server"
OnClientDoubleClick
=
"double"
OnClientNodeClicking
=
"single"
>
<
script
type
=
"text/javascript"
>
var isDobuleClick;
function double(sender, args) {
//place your custom logic here
isDobuleClick = true;
}
function single(sender, args) {
setTimeout(function () {
if (isDobuleClick)
return;
// place your custom logic here
}, 300);
isDobuleClick = false;
}
</
script
>
Regards,
Ivan Danchev
Telerik
See What's Next in App Development. Register for TelerikNEXT.
Hi Ivan
It does not work on my side and I don't get the logic. Function single() calls the setTimeout function, but then a server side node click event is fired, as nothing prevents this.
Shouldn't the single node click be canceled in any case and only executed after the 300 milliseconds are elapesed and the flag isDoubleClick is False?
Or is the problem that I have wired the node click event in my code behind like this:
Private Sub tree_NodeClick(o As Object, e As Telerik.Web.UI.RadTreeNodeEventArgs) Handles tree.NodeClick
Regards,
Tonino.
If you want to have single click and double click functionality you should use the corresponding client-side events and not the server-side NodeClick event, because it cannot be cancelled.
Please, find linked a short video demonstrating how the double click and single click both work with the code I posted in my previous reply. The chain of actions is as follows: double click, single click, single click, double click. As you can see from the logs the appropriate events fire correctly.
Regards,
Ivan Danchev
Telerik
See What's Next in App Development. Register for TelerikNEXT.