but as is in a form it runs perfectly,
but once migrated into a user control,..RadPanes and splitters removed and replaced with aspPanels, the Context Menus are unavailble (as is any drag n drop functionality.)
I have obviously left something out ..
OffHand?? any ideas/reason/...
I have added the code beneath, in case :)
TIA
Neal
<!---Script for Drag n Drop funcionality -->
<script type="text/javascript" src="dragdrop.js"></script>
<!---Script for Form ContextMenu functionality -->
<script type="text/javascript">
function GridContextMenu(sender, args)
{
sender.Hide();
}
function RowContextMenu(index, e)
{
this.SelectRow(this.Rows[index].Control, true)
}
function ContextMenuClick(node, itemText)
{
if (itemText == "Rename Node")
{
node.StartEdit();
}
return true;
}
function MenuClick(sender, args)
{
if (args.Item.Text == "Rename Node")
{
var treeview = <%= RadTreeView1.ClientID %>
if (treeview.SelectedNode != null)
{
treeview.SelectedNode.StartEdit();
}
}
}
function MenuClose()
{
var menu = <%= RadMenu1.ClientID %>;
menu.Close();
}
</script>
<!-- content start -->
<div class="wrapper">
<div class="wrapper2">
<h3 class="browser"></h3>
<div class="wrapper3">
<radM:RadMenu ID="RadMenu1" runat="server"
Skin="Vista"
Width="60%"
OnItemClick="RadMenu1_ItemClick"
OnClientItemClicked="MenuClick" BorderWidth="0"
>
<Items>
<radM:RadMenuItem ID="RadMenuItem1" runat="server">
<Items>
<radM:RadMenuItem ID="RadMenuItem2" Text="New Node" runat="server"
ImageUrl="~/Images/new.gif" Enabled="false" />
<radM:RadMenuItem ID="RadMenuItem3" Text="Delete Node" runat="server"
ImageUrl="~/Images/delete.gif" Enabled="false" />
<radM:RadMenuItem ID="RadMenuItem4" Text="Rename Node" runat="server"
ImageUrl="~/Images/rename.gif" Enabled="false" />
</Items>
</radM:RadMenuItem>
<radM:RadMenuItem ID="RadMenuItem5" runat="server">
<Items>
<radM:RadMenuItem ID="RadMenuItem6" Text="Copy Node" runat="server"
ImageUrl="~DemoImages/copy.gif" Enabled="false" />
<radM:RadMenuItem ID="RadMenuItem7" Text="Paste Node" runat="server"
ImageUrl="~/Images/paste.gif" Enabled="false" />
</Items>
</radM:RadMenuItem>
</Items>
</radM:RadMenu>
<div class="innerWrapper" style="width: 80%">
<asp:Panel ID="RadPaneTreeView" runat="server"
CssClass="RadPaneTreeView" Width="80%" >
<div class="leftPaneHeader">Folders</div>
<radT:RadTreeView ID="RadTreeView1" runat="server"
AutoPostBack="True"
OnNodeClick="RadTreeView1_NodeClick"
Width="100%"
Height="99%"
BeforeClientContextClick="ContextMenuClick"
AllowNodeEditing="True"
OnNodeEdit="RadTreeView1_NodeEdit"
AccessKey="T"
DragAndDrop="True"
OnNodeDrop="RadTreeView1_NodeDrop"
OnNodeExpand="RadTreeView1_NodeExpand"
>
</radT:RadTreeView>
</asp:Panel>
<asp:Panel ID="RadPaneGrid" runat="server"
CssClass="RadPaneGrid" Width="80%">
<radG:RadGrid ID="RadGrid1" runat="server"
AutoGenerateColumns="False"
GridLines="None"
Width="70%"
Height="90%"
OnItemDataBound="RadGrid1_ItemDataBound"
OnNeedDataSource="RadGrid1_NeedDataSource1"
BorderWidth="0"
>
<MasterTableView Width="70%">
<Columns>
<radG:GridTemplateColumn
HeaderText="Name" SortExpression="Name"
UniqueName="Name">
<ItemTemplate>
<asp:Image ID="icon" runat="server" />
<asp:Label ID="itemLabel" runat="server"
Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
<ItemStyle BorderStyle="None" />
</radG:GridTemplateColumn>
<radG:GridTemplateColumn
HeaderText="Size" SortExpression="Size"
UniqueName="Size" >
<HeaderStyle Width="100px" />
<ItemStyle BorderStyle="None" Width="100px"/>
</radG:GridTemplateColumn>
</Columns>
<ExpandCollapseColumn Visible="False">
<HeaderStyle Width="19px" />
</ExpandCollapseColumn>
<RowIndicatorColumn Visible="False">
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
</MasterTableView>
<ItemStyle BorderStyle="None" />
<ClientSettings ApplyStylesOnClient="True"
ReorderColumnsOnClient="True">
<Selecting AllowRowSelect="True" />
<Resizing AllowColumnResize="True" />
<Scrolling AllowScroll="True" UseStaticHeaders="True"
ScrollHeight="99.9%" />
<ClientEvents OnRowContextMenu="RowContextMenu"
OnRowCreated="RowCreated" />
</ClientSettings>
<HeaderStyle BorderColor="DarkGray"
BorderStyle="Solid" BorderWidth="1px" />
</radG:RadGrid>
</asp:Panel>
</div>
<radM:RadMenu ID="treeContextMenu" runat="server"
IsContext="true"
ContextMenuElementID="RadTreeView1"
Style="left: 2px"
OnItemClick="RadMenu1_ItemClick"
OnClientItemClicked="MenuClick"
>
<Items>
<radM:RadMenuItem Text="New Node" ImageUrl="~/Images/new.gif" />
<radM:RadMenuItem Text="Delete Node" ImageUrl="~/Images/delete.gif" />
<radM:RadMenuItem Text="Rename Node" ImageUrl="~/Images/rename.gif" />
<radM:RadMenuItem IsSeparator="true" />
<radM:RadMenuItem Text="Copy Node" ImageUrl="~/Images/copy.gif" />
<radM:RadMenuItem Text="Paste Node" ImageUrl="~/Images/paste.gif" />
</Items>
</radM:RadMenu>
<radM:RadMenu ID="gridContextMenu" runat="server"
IsContext="true"
ContextMenuElementID="RadGrid1"
OnItemClick="gridContextMenu_ItemClick"
OnClientItemClicked="GridContextMenu"
>
<Items>
<radM:RadMenuItem Text="Delete" ImageUrl="~/Images/delete.gif" />
<radM:RadMenuItem IsSeparator="true" />
<radM:RadMenuItem Text="Copy" ImageUrl="~/Images/copy.gif" />
<radM:RadMenuItem Text="Paste" ImageUrl="~/Images/paste.gif" />
</Items>
</radM:RadMenu>
</div>
<div class="footer">
<radA:AjaxLoadingPanel ID="AjaxLoadingPanel1" runat="server" Height="75px" Width="275px"
IsSticky="True" >
<asp:Image ID="Image1" runat="server" AlternateText="Loading..."
ImageUrl="~/RadControls/Ajax/Skins/Default/loadingProgressBar.gif"
CssClass="UpdateImage"/> Updating...
</radA:AjaxLoadingPanel>
</div>
</div>
</div>
.cs
=====
protected void Page_Load(object sender, EventArgs e)
{
//if (!IsPostBack)
//{
//Initial Direcory and Server on which it is...ex Dbase.ex Config settings Menu
initialDirectory =
WebConfigurationManager.AppSettings["DRM: InitialDocFolder"];
//##ToDo: Set the InitialDirectory according to User (DM or SAPS or MP or Roadsn or Traffic or Ambulance etc)
//..........into web.config
initialDirectory = @initialDirectory;
string[] Dirs = Directory.GetDirectories(@"C:\");
LoadTreeView(initialDirectory);
RadMenu1.FindItemByText(
"Rename Node").PostBack = false;
treeContextMenu.FindItemByText(
"Rename Node").PostBack = false;
// }
}
private void LoadTreeView(string folder)
{
RadTreeNode rootNode = new RadTreeNode("Root");
rootNode.ImageUrl =
"../Images/mailfolder.gif";
rootNode.Expanded =
true;
rootNode.Category =
"Folder";
rootNode.Value = folder;
rootNode.ContextMenuName =
"File";
RadTreeView1.Nodes.Add(rootNode);
CurrentDir = GetFileList(folder);
BindDirectory(folder, rootNode.Nodes);
}
etc
and
protected
void gridContextMenu_ItemClick(object sender, RadMenuEventArgs e)
and
private
void ChangeMenuItemsState(RadMenu treeviewMenu)
and
protected
void RadMenu1_ItemClick(object sender, RadMenuEventArgs e)
which handle the menu item clicked, eg Copy Edit Delete, NewNode, DeleteNode...