I have 3 menus (expanded/outlook type) in a Nav Pane and Loading into a content Pane.
I have the first menu's server side click working using (C#..override onInit etc working fine)
the other two however,..applying the same logic however do not recognise and fire their respective set up click events.
What am I missing?
I am using Telerik Q4 2006 ASPNet 2.
The code is beneath (I have excluded the 3rd menu for brevity,..but should be same logic problem as second menu)
The FindControl for each menu is also fine,..just the click event for menus 2 and 3 not firing
Thanks
Neal
override
protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
//find the first radmenu...it is in an ItemTemplate
RadMenu TopRadMenu =
(
RadMenu)this.RadPanelbar1.Controls[0].Controls[0].FindControl("RadMenu1");
if (TopRadMenu != null)
{
TopRadMenu.ItemClick +=
new RadMenuEventHandler(this.Menu1_ItemClick);
this.Load += new EventHandler(this.Page_Load);
}
//find the second radmenu...it is in an ItemTemplate
//?this.RadPanelbar1.Controls[1].Controls[0].Controls[1]
RadMenu MidRadMenu =
(
RadMenu)this.RadPanelbar1.Controls[1].Controls[0].FindControl("Radmenu2");
if (MidRadMenu != null)
{
MidRadMenu.ItemClick +=
new RadMenuEventHandler(this.Menu2_ItemClick);
this.Load += new EventHandler(this.Page_Load);
}
//find the third radmenu...it is in an ItemTemplate
//?this.RadPanelbar_RP.Controls[0].Controls[0].Controls[1]
RadMenu BtmRadMenu =
(
RadMenu)this.RadPanelbar_RP.Controls[0].Controls[0].FindControl("Radmenu3");
if (BtmRadMenu != null)
{
BtmRadMenu.ItemClick +=
new RadMenuEventHandler(this.Menu3_ItemClick);
this.Load += new EventHandler(this.Page_Load);
}
}
protected void Page_Load(object sender, EventArgs e)
{
//Recreacte the user control for each page-lifecycle since we are adding it dynamically to the page
LoadUserControl(
this.selectedUC);
}
public void LoadUserControl(string userControl)
{
//Load user control onto page
Control selectedUserControl = Page.LoadControl(userControl);
//Generate an Unique ID based the control path
string uniqueID = this.selectedUC.Split('.')[0];
uniqueID = uniqueID.Replace(
"/", "").Replace("~", "");
selectedUserControl.ID = uniqueID;
//Load control into Required Panel
//...and prevent controls from being loaded twice..weird error,..??
if (TopContentPanel.FindControl(selectedUserControl.ID) == null)
{
TopContentPanel.Controls.Add(selectedUserControl);
}
}
public void ReloadUserControl()
{
//Loads the UCtl from the Property,...usually set from the UCtl..hence Public property
TopContentPanel.Controls.Clear();
LoadUserControl(
this.selectedUC);
}
private void Menu1_ItemClick(object sender, RadMenuEventArgs e)
{
RadMenuItem ItemClicked = e.Item;
string Temp = FullPath(ItemClicked);
//Given we have the name of the menu item clicked,...
//Load the Required UserControl
switch (FullPath(ItemClicked))
{
case "Occurrence Book":
this.selectedUC = "OpsOccurrenceLogs.ascx";
break;
case "Operations":
this.selectedUC = "Operations.ascx";
break;
//Ops Locations ..Locations per each Operation current and old
case "Ops Locations":
this.selectedUC = "Locations.ascx";
break;
default:
this.selectedUC = "OpsOccurrenceLogs.ascx";
break;
}
ReloadUserControl();
}
private void Menu2_ItemClick(object sender, RadMenuEventArgs e)
{
//Co-ordinators resources
RadMenuItem ItemClicked = e.Item;
string Temp = FullPath(ItemClicked);
switch (FullPath(ItemClicked))
{
case "Documents":
this.selectedUC = "Documents.ascx";
break;
case "Contacts":
this.selectedUC = "Contacts.ascx";
break;
case "RolePlayers":
this.selectedUC = "RPlayers.ascx";
break;
default:
this.selectedUC = "RPlayers.ascx";
break;
}
ReloadUserControl();
}
// I do use RadAjaxManager1_ResolveUpdatedControls//
@
Page Language="C#" AutoEventWireup="true" CodeFile="DRM OperationsMngr.aspx.cs"
Inherits="Drm_OPSMainForm" %>
<%
@ Register Assembly="RadAjax.Net2" Namespace="Telerik.WebControls" TagPrefix="radA" %>
<%
@ Register Assembly="RadMenu.Net2" Namespace="Telerik.WebControls" TagPrefix="radM" %>
<%
@ Register TagPrefix="radp" Namespace="Telerik.WebControls" Assembly="RadPanelbar.NET2" %>
<!
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 id="Head1" runat="server">
<title>Ops manager</title>
<link rel="stylesheet" type="text/css" href="Style.css"/>
</
head>
<
body>
<form id="form1" runat="server">
<div id="FormDiv" style="width:100%; height:100%; border:solid ,1,gray">
<radA:RadAjaxManager ID="RadAjaxManager1" runat="server" >
<AjaxSettings>
<radA:AjaxSetting AjaxControlID="RadMenu1">
<UpdatedControls>
<radA:AjaxUpdatedControl ControlID="TopContentPanel" />
</UpdatedControls>
</radA:AjaxSetting>
<radA:AjaxSetting AjaxControlID="Radmenu2">
<UpdatedControls>
<radA:AjaxUpdatedControl ControlID="BottomContentPanel" />
</UpdatedControls>
</radA:AjaxSetting>
</AjaxSettings>
</radA:RadAjaxManager>
<asp:Panel
ID="TopNavPanel"
runat="server"
CssClass="TopNavPanel"
ScrollBars="Auto">
<radp:RadPanelbar ID="RadPanelbar1" runat="server" Width="190px"
Skin="Outlook" height="100%" >
<Items>
<radp:RadPanelItem Text="DM Admin" runat="server"
Expanded="true" Width="100%" BorderStyle="none">
<Items>
<radp:RadPanelItem runat="server" >
<ItemTemplate>
<radm:RadMenu ID="RadMenu1"
runat="server"
Flow="Vertical" Width="100%" Height="100%"
>
<Items>
<radm:RadMenuItem ID="OccurrenceBook"
runat="server"
BackColor="#404040" ForeColor="Silver"
Text="Occurrence Book"
Width="100%" >
<GroupSettings ExpandDirection="Down"
Width="90px" />
</radm:RadMenuItem>
<radm:RadMenuItem ID="Operations" runat="server"
BackColor="#404040" ForeColor="Silver"
Text="Operations"
Width="100%" >
<GroupSettings ExpandDirection="Down"
Width="90px" />
</radm:RadMenuItem>
<radm:RadMenuItem ID="Locations" runat="server"
BackColor="#404040" ForeColor="Silver"
Text="Locations"
Width="100%" >
<GroupSettings ExpandDirection="Down"
Width="90px" />
</radm:RadMenuItem>
</Items>
</radm:RadMenu>
</ItemTemplate>
</radp:RadPanelItem>
</Items>
</radp:RadPanelItem>
<radp:RadPanelItem Text="DM Resources" Expanded="True"
runat="server" >
<Items>
<radp:RadPanelItem runat="server">
<ItemTemplate>
<radm:RadMenu ID="Radmenu2" runat="server"
Flow="Vertical" Width="100%">
<Items>
<radm:RadMenuItem ID="RPlayers" runat="server"
BackColor="#404040" ForeColor="Lime"
Text="RolePlayers"
Width="100%"
Target="TopContentPanel">
<GroupSettings ExpandDirection="Down" Width="90px" />
</radm:RadMenuItem>
<radm:RadMenuItem ID="Contacts" runat="server"
BackColor="#404040" ForeColor="Lime"
Text="Contacts"
Width="100%"
Target="TopContentPanel">
<GroupSettings ExpandDirection="Down" Width="90px" />
</radm:RadMenuItem>
<radm:RadMenuItem ID="Documents" runat="server"
BackColor="#404040" ForeColor="Lime"
Text="Documents"
Width="100%"
Target="TopContentPanel">
<GroupSettings ExpandDirection="Down" Width="90px" />
</radm:RadMenuItem>
</Items>
</radm:RadMenu>
</ItemTemplate>
</radp:RadPanelItem>
</Items>
</radp:RadPanelItem>
</Items>
</radp:RadPanelbar>
</asp:Panel>
<asp:Panel ID="TopContentPanel" runat="server" CssClass="TopContentPanel">
</asp:Panel>
<asp:Panel ID="BottomNavPanel" runat="server"
CssClass="BottomNavPanel" ScrollBars="Auto">
</asp:Panel>
<asp:Panel ID="BottomContentPanel" runat="server" CssClass="BottomContentPanel">
</asp:Panel>
<asp:Panel ID="FooterCommsPanel" runat="server" CssClass="FooterCommsPanel">
</asp:Panel>
</div>
</form>
</body>