Can you tell me why?
I have attached my small VS2008 project where the problem occurs. I had to change the extension from .zip attachment to .jpg, so detach it and rename to .zip before extracting it.
Thanks.
6 Answers, 1 is accepted
<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<!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>Untitled Page</title>
<link type="text/css" rel="Stylesheet" href="css/Portal.css" />
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div style="text-align:left;">
<table class="portalMasterContent">
<tr class="portalMasterContent">
<td class="siteManagementNavigation">
<asp:Panel ID="Panel1" runat="server" BackColor="#CCCCFF" ScrollBars="Both" Height="100%">
<telerik:RadTreeView ID="RadTreeView1" Runat="server" BackColor="#CCCCFF"
ForeColor="Black" AllowNodeEditing="True" CheckBoxes="True" Skin="Sunset"
EnableDragAndDrop="True" EnableDragAndDropBetweenNodes="True"
OnNodeDrop="RadTreeView1_NodeDrop" OnNodeEdit="RadTreeView1_NodeEdit" MultipleSelect="True"
OnContextMenuItemClick="RadTreeView1_ContextMenuItemClick" OnNodeClick="RadTreeView1_NodeClick" >
</telerik:RadTreeView>
</asp:Panel>
</td>
<td class="siteManagementContent" align="center" valign="middle" style="height: 100%">
<%-- <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
--%> <asp:PlaceHolder ID="phDetails" runat="server" />
<%-- </ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="RadTreeView1" EventName="NodeClick" />
</Triggers>
</asp:UpdatePanel>
--%> </td>
</tr>
</table>
</div>
</form>
</body>
</html>
The treeview is not updated after ajax hence adding the node seems like it has no effect. Please add the treeview in the update panel so it is updated after ajax request.
Regards,
Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
I use VS 2008. Telerik tools are in the toolbox. I notice that OnContextMenuItemClick is not in the TreeView property.
Does that mean something?
here is the code:
<asp:Panel ID="pnlTemplateSave" Wrap="false" style="background-color:White;" runat="server">
<asp:UpdatePanel ID="updpnlSave" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<table id="tblTemplateSave" cellpadding="5px" style="width:500px; border:solid 1px #B5B8C8; border-collapse:collapse;">
<tr>
<td class="windowHeader">
<span>Save Template</span>
</td>
</tr>
<tr>
<td>
<asp:RequiredFieldValidator ID="rfvSltdNode" ErrorMessage="Please select a folder." ControlToValidate="RadTreeView2"
ValidationGroup="RequiredGroup" runat="server"></asp:RequiredFieldValidator>
<telerik:RadTreeView ID="RadTreeView2" MultipleSelect="false" AllowNodeEditing="true"
runat="server" Height="300px"
OnClientContextMenuShowing="onClientContextMenuShowing"
OnClientContextMenuItemClicked="onClientContextMenuItemClick"
OnContextMenuItemClick="RadTreeView2_ContextMenuItemClick"
OnNodeExpand="RadTreeView2_NodeExpand"
OnNodeEdit="RadTreeView2_NodeEdit"
Skin="Vista"
>
</telerik:RadTreeView>
<%
-- BeforeClientContextMenu="ShowRadMenu"
<telerik:RadMenu ID="RadMenu1" runat="server" IsContext="True" Skin="Outlook" >
</telerik:RadMenu>
--
%>
<telerik:RadContextMenu ID="RootFolderContextMenu" runat="server" style="z-index:100000" >
<Items>
<telerik:RadMenuItem Value="New" Text="New Folder" ></telerik:RadMenuItem>
</Items>
</telerik:RadContextMenu>
<telerik:RadContextMenu ID="ChildFolderContextMenu" runat="server" style="z-index:100000" >
<Items>
<telerik:RadMenuItem Value="New" Text="New Folder" Enabled="true" ></telerik:RadMenuItem>
<telerik:RadMenuItem Value="Rename" Text="Rename Folder" PostBack="false"></telerik:RadMenuItem>
<telerik:RadMenuItem Value="Delete" Text="Delete Folder" ></telerik:RadMenuItem>
</Items>
</telerik:RadContextMenu>
<telerik:RadContextMenu ID="FileContextMenu" runat="server" style="z-index:100000" >
<Items>
</Items>
</telerik:RadContextMenu>
</td>
</tr>
<tr>
<td>
<asp:label ID="lblTemplateName" Text="Template Name:" runat="server"></asp:label>
<asp:TextBox ID="txtTemplateName" Width="300px" MaxLength="256" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvTplName" ErrorMessage="Template Name is required." ControlToValidate="txtTemplateName"
ValidationGroup="RequiredGroup" runat="server"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Button ID="btnSave" UseSubmitBehavior="false" Text="Save" OnClick="SaveTemplate" runat="server" ValidationGroup="RequiredGroup" />
<asp:Button ID="btnCancel" UseSubmitBehavior="false" Text="Cancel" OnClick="CancelTemplate" runat="server" />
</td>
</tr>
</table>
<ajaxToolkit:ModalPopupExtender ID="mpeTemplateSave" runat="server"
TargetControlID="btnSave"
BehaviorID="mpeTemplateSaveBhvr"
PopupControlID="pnlTemplateSave"
PopupDragHandleControlID="tblTemplateSave"
CancelControlID="btnCancel"
BackgroundCssClass="ext-el-mask" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
Per the advice of support, I added the entire treeview to the update panel, and it worked for me.
Not sure what you mean about OnContextMenuItemClick. I'm using it in my example.
Phil
To understand more about this, I added the alert() in the onClientContextMenuShowing to show the property values. First, I get the menu object:
treeNode.get_contextMenu()
It shows that enable state is "undefined" and visible is false. (it displays correctly if NOT in popup).
So I add these two lines:
menu.set_enabled();
menu.show(evt);
It still does not work.
What I don't understand is that same code works in the non-popup scenario.
I need help.
Here is the code
<asp:ScriptManager ID="sm" EnablePageMethods="true" runat="server" ></asp:ScriptManager>
<telerik:RadEditor ID="htmlEditor" runat="server" OnClientLoad = "OnClientLoad"
AllowScripts="True" Width="100%" Height="500" Skin="Vista" EditModes="Design,Html" >
<Tools>
<telerik:EditorTool Name="btnSave" Text="Save" ShowIcon="false" showText="true" />
<telerik:EditorSeparator Visible="true" />
<telerik:EditorToolGroup>
..................
</telerik:EditorToolGroup>
</Tools>
</telerik:RadEditor>
<asp:Panel ID="pnlTemplateSave" Wrap="false" style="background-color:White;" runat="server">
<asp:UpdatePanel ID="updpnlSave" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<telerik:RadTreeView ID="RadTreeView2" MultipleSelect="false" AllowNodeEditing="true" runat="server" Height="300px"
OnClientContextMenuShowing="onClientContextMenuShowing"
OnClientContextMenuItemClicking="onClientContextMenuItemClicking"
OnContextMenuItemClick="RadTreeView2_ContextMenuItemClick"
OnNodeExpand="RadTreeView2_NodeExpand"
OnNodeEdit="RadTreeView2_NodeEdit"
Skin="Vista" >
<ContextMenus>
<telerik:RadTreeViewContextMenu ID="RootFolderContextMenu" runat="server">
<Items>
<telerik:RadMenuItem Value="New" Text="New Folder" ></telerik:RadMenuItem>
</Items>
<CollapseAnimation Type="none" />
</telerik:RadTreeViewContextMenu>
<telerik:RadTreeViewContextMenu ID="ChildFolderContextMenu" runat="server">
<Items>
<telerik:RadMenuItem Value="New" Text="New Folder" ></telerik:RadMenuItem>
<telerik:RadMenuItem Value="Rename" Text="Rename Folder" PostBack="false"></telerik:RadMenuItem>
<telerik:RadMenuItem Value="Delete" Text="Delete Folder" ></telerik:RadMenuItem>
</Items>
<CollapseAnimation Type="none" />
</telerik:RadTreeViewContextMenu>
<telerik:RadTreeViewContextMenu ID="FileContextMenu" runat="server">
<Items>
</Items>
<CollapseAnimation Type="none" />
</telerik:RadTreeViewContextMenu>
</ContextMenus>
</telerik:RadTreeView>
<ajaxToolkit:ModalPopupExtender ID="mpeTemplateSave" runat="server"
TargetControlID="btnSave"
BehaviorID="mpeTemplateSaveBhvr"
PopupControlID="pnlTemplateSave"
PopupDragHandleControlID="tblTemplateSave"
CancelControlID="btnCancel"
BackgroundCssClass="ext-el-mask" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<script type="text/javascript">
Telerik.Web.UI.Editor.CommandList["btnSave"] = function(commmandName, editor, args) {
var mpe = $find('mpeTemplateSaveBhvr');
if (mpe)
mpe.show();
}
function onClientContextMenuShowing(sender, args) {
var treeNode = args.get_node();
var evt = args.get_domEvent();
treeNode.set_selected(true);
if (treeNode) {
var menu = treeNode.get_contextMenu();
if (menu) {
menu.set_enabled();
alert(menu.get_enabled());
menu.show(evt);
alert(menu.get_enabled() + " " + menu.get_visible());
}
}
</script>