Hi I've got a problem with the ASP.NET Rad Treeview, with checkboxes. The user is able to navigate about the treeview using the cursor keys. However it seems the actual focus is not changing, it appears the focus is changing as the class of rtSelected class is being applied corresponding to the user's navigation using the cursor keys. The actual focus can be changed using the tab key. I've got screen shots which clearly show the focus and the highlighted (selected) nodes being different in IE and Chrome
Chrome...
http://i49.tinypic.com/sf9og0.png
The selected field text is highlighted in grey. The input with focus is highlighted with a yellow box.
IE
http://i49.tinypic.com/adhhls.png
The selected field text is highlighted in grey. The input with focus is highlighted with a dashed outline.
This is not just a cosmetic issue I'm finding when the user selects a node using the space bar, OnNodeCheck is fired twice, once for the selected node and another time for the node with focus.
The focus and the selected node should be the same regardless of what input method is used.
ASPX:-
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2.Default" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!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
>
<
script
type
=
"text/javascript"
>
function AfterUserLocationCheck(node) {
var i;
var nodes = node.TreeView.AllNodes;
for (i = 0; i <
nodes.length
; i++) {
if (nodes[i] != node)
nodes[i].UnCheck();
}
}
</script>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
asp:ToolkitScriptManager
ID
=
"ToolkitScriptManager1"
EnablePageMethods
=
"true"
runat
=
"server"
>
</
asp:ToolkitScriptManager
>
<
div
>
<
telerik:RadTreeView
ID
=
"tvUserLocation"
runat
=
"server"
AllowNodeEditing
=
"False"
DataFieldID
=
"Id"
DataFieldParentID
=
"Parent"
DataTextField
=
"Name"
DataValueField
=
"ID"
MultipleSelect
=
"false"
AfterClientCheck
=
"AfterUserLocationCheck"
Skin
=
"Default"
OnNodeCheck
=
"tvUserLocation_OnNodeClick"
TabIndex
=
"1"
CheckBoxes
=
"True"
>
<
Nodes
>
<
telerik:RadTreeNode
Text
=
"World"
>
<
Nodes
>
<
telerik:RadTreeNode
Text
=
"Australia"
/>
<
telerik:RadTreeNode
Text
=
"Germany"
/>
<
telerik:RadTreeNode
Text
=
"United States"
/>
</
Nodes
>
</
telerik:RadTreeNode
>
</
Nodes
>
</
telerik:RadTreeView
>
</
div
>
</
form
>
</
body
>
</
html
>
Code Behind:-
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Diagnostics;
namespace
WebApplication2
{
public
partial
class
Default : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
tvUserLocation_OnNodeClick(
object
sender, Telerik.Web.UI.RadTreeNodeEventArgs e)
{
Debug.WriteLine(e.Node.Text);
}
}
}