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); } }}