Hi, i am facing really weird problem. When i am trying to preview page from Visual Studio 2010 in debug/ or just view in browser mode
i am not able to fire events of expand/collapse button, cursor also is not changing when moved over button. Double clik on node- works fine. However when i deploy page o server and run it from server in the same browser, +/- bnutton works, as well as cursor is changing.
Here is simple code of the page
i am not able to fire events of expand/collapse button, cursor also is not changing when moved over button. Double clik on node- works fine. However when i deploy page o server and run it from server in the same browser, +/- bnutton works, as well as cursor is changing.
Here is simple code of the page
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="treeviewnew.aspx.cs" Inherits="treeviewnew" %> <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head></head> <body class="BODY"> <form runat="server" id="mainForm" method="post"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <script type="text/javascript"> //<!-- function onClientContextMenuShowing(sender, args) { var treeNode = args.get_node(); treeNode.set_selected(true); //enable/disable menu items setMenuItemsState(args.get_menu().get_items(), treeNode); } function onClientContextMenuItemClicking(sender, args) { var menuItem = args.get_menuItem(); var treeNode = args.get_node(); menuItem.get_menu().hide(); switch (menuItem.get_value()) { case "New": break; case "Edit": treeNode.startEdit(); break; case "Delete": var result = confirm("Are you sure you want to delete the item: " + treeNode.get_text()); args.set_cancel(!result); break; } } //this method disables the appropriate context menu items function setMenuItemsState(menuItems, treeNode) { for (var i = 0; i < menuItems.get_count(); i++) { var menuItem = menuItems.getItem(i); switch (menuItem.get_value()) { case "New": formatMenuItem(menuItem, treeNode, 'New '); break; case "Edit": formatMenuItem(menuItem, treeNode, 'Edit "{0}"'); break; case "Delete": formatMenuItem(menuItem, treeNode, 'Delete "{0}"'); break; } } } //formats the Text of the menu item function formatMenuItem(menuItem, treeNode, formatString) { var nodeValue = treeNode.get_value(); if (nodeValue && nodeValue.indexOf("_Private_") == 0) { menuItem.set_enabled(false); } else { menuItem.set_enabled(true); } var newText = String.format(formatString, extractTitleWithoutMails(treeNode)); menuItem.set_text(newText); } //checks if the text contains (digit) function hasNodeMails(treeNode) { return treeNode.get_text().match(/\([\d]+\)/ig); } //removes the brackets with the numbers,e.g. Inbox (30) function extractTitleWithoutMails(treeNode) { return treeNode.get_text().replace(/\s*\([\d]+\)\s*/ig, ""); } //--> </script> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"> </telerik:RadAjaxLoadingPanel> <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1"> <telerik:RadTreeView ID="RadTreeView1" runat="server" OnContextMenuItemClick="RadTreeView1_ContextMenuItemClick" OnClientContextMenuItemClicking="onClientContextMenuItemClicking" OnClientContextMenuShowing="onClientContextMenuShowing" OnNodeEdit="RadTreeView1_NodeEdit" DataFieldID="id" DataFieldParentID="parentid" DataSourceID="SqlDataSource1" DataTextField="description" DataValueField="value" MaxDataBindDepth="4" Skin="WebBlue" > <ContextMenus> <telerik:RadTreeViewContextMenu ID="MainContextMenu" runat="server"> <Items> <telerik:RadMenuItem Value="New" Text="New ..." > </telerik:RadMenuItem> <telerik:RadMenuItem Value="Edit" Text="Edit ..." > </telerik:RadMenuItem> <telerik:RadMenuItem Value="Delete" Text="Delete.." > </telerik:RadMenuItem> </Items> <CollapseAnimation Type="none" /> </telerik:RadTreeViewContextMenu> <telerik:RadTreeViewContextMenu ID="EmptyFolderContextMenu" runat="server"> <Items> <telerik:RadMenuItem Value="New" Text="New "> </telerik:RadMenuItem> </Items> <CollapseAnimation Type="none" /> </telerik:RadTreeViewContextMenu> </ContextMenus> </telerik:RadTreeView> </telerik:RadAjaxPanel> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ECMApp3 %>" SelectCommand="select distinct isnull(state,'')+'state' as id, null as parentid, isnull(state,'no state') as description, isnull(state,'') as value from projects union all select cast(p.id as varchar(10))+'project' as id, isnull(p.state, '')+'state' as parentid , p.description, cast(p.id as varchar(10)) from projects p union all select cast(l.id as varchar(10))+'location', cast(p.id as varchar(10))+'project', l.name ,cast( l.id as varchar(10)) from locations l inner join projects p on l.project_id=p.id union all select cast (b.id as varchar(10))+'building', cast(l.id as varchar(10))+'location', b.building_name, cast(b.id as varchar(10)) from buildings b inner join locations l on b.location_id=l.id --where l.id <2"></asp:SqlDataSource> </form> </body> </html> using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using Telerik.Web.UI; using System.Text.RegularExpressions; public partial class treeviewnew : System.Web.UI.Page { protected const string unreadPattern = @"\(\d+\)"; protected void Page_Load(object sender, EventArgs e) { SqlDataSource1.DataBind(); SqlDataSource1.Select(DataSourceSelectArguments.Empty); //RadTreeView2.DataBind(); } protected void RadTreeView1_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e) { RadTreeNode clickedNode = e.Node; switch (e.MenuItem.Value) { case "New": RadTreeNode clonedNode = clickedNode.Clone(); clonedNode.Text = string.Format("Copy of {0}", clickedNode.Text); clickedNode.InsertAfter(clonedNode); //set node's value so we can find it in startNodeInEditMode clonedNode.Value = clonedNode.GetFullPath("/"); clonedNode.Selected = true; startNodeInEditMode(clonedNode.Value); break; case "Delete": clickedNode.Remove(); break; } } private void startNodeInEditMode(string nodeValue) { //find the node by its Value and edit it when page loads string js = "Sys.Application.add_load(editNode); function editNode(){ "; js += "var tree = $find(\"" + RadTreeView1.ClientID + "\");"; js += "var node = tree.findNodeByValue('" + nodeValue + "');"; js += "if (node) node.startEdit();"; js += "Sys.Application.remove_load(editNode);};"; RadScriptManager.RegisterStartupScript(Page, Page.GetType(), "nodeEdit", js, true); } protected void RadTreeView1_NodeEdit(object sender, RadTreeNodeEditEventArgs e) { e.Node.Text = e.Text; } //this method is used by Mark All as Read and Empty this folder protected void emptyFolder(RadTreeNode node, bool removeChildNodes) { node.Font.Bold = false; node.Text = Regex.Replace(node.Text, unreadPattern, ""); if (removeChildNodes) { //Empty this folder is clicked for (int i = node.Nodes.Count - 1; i >= 0; i--) { node.Nodes.RemoveAt(i); } } else { //Mark all as read is clicked foreach (RadTreeNode child in node.Nodes) { emptyFolder(child, removeChildNodes); } } } }