or

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %><!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> <telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server" /></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <%--Needed for JavaScript IntelliSense in VS2010--%> <%--For VS2008 replace RadScriptManager with ScriptManager--%> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <script type="text/javascript"> //Put your JavaScript code here. </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RibbonBarButton1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="PlaceHolder1" /> <telerik:AjaxUpdatedControl ControlID="hf" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RibbonBarButton2"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="PlaceHolder1" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="hf" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <div> <telerik:RadRibbonBar ID="RadRibbonBar1" runat="server" Width="900px" Style="max-width: 900px;" Skin="Office2010Silver" EnableMinimizing="true"> <telerik:RibbonBarTab Text="UC"> <telerik:RibbonBarGroup Text="UC1" ID="RibbonBarGroup1"> <Items> <telerik:RibbonBarButton Size="Large" Text="UC1" ImageUrlLarge="/images/icons/docs_32.png" ID="RibbonBarButton1" /> </Items> </telerik:RibbonBarGroup> <telerik:RibbonBarGroup Text="UC2" ID="RibbonBarGroup2"> <Items> <telerik:RibbonBarButton Size="Large" Text="UC2" ImageUrlLarge="/images/icons/docs_32.png" ID="RibbonBarButton2" /> </Items> </telerik:RibbonBarGroup> </telerik:RibbonBarTab> </telerik:RadRibbonBar> <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> </div> <asp:Label ID="hf" Text="" runat="server" Visible="false" /> </form></body></html>Imports Telerik.Web.UIPartial Class _Default Inherits System.Web.UI.Page Protected Sub RadRibbonBar1_ButtonClick(sender As Object, e As RibbonBarButtonClickEventArgs) Handles RadRibbonBar1.ButtonClick If e.Button.ID.ToString = "RibbonBarButton1" Then LoadUserControl("UC1") ElseIf e.Button.ID.ToString = "RibbonBarButton2" Then LoadUserControl("UC2") End If End Sub Public Sub LoadUserControl(ByVal userControl As String) hf.Text = userControl PlaceHolder1.Controls.Clear() Dim wuc As Web.UI.UserControl = CType(LoadControl("~/" & userControl & ".ascx"), Web.UI.UserControl) wuc.ID = userControl PlaceHolder1.Controls.Add(wuc) End Sub Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Page.IsPostBack Then If hf.Text.Length > 2 Then Dim wuc As Web.UI.UserControl = CType(LoadControl("~/" & hf.Text & ".ascx"), Web.UI.UserControl) wuc.ID = hf.Text wuc.Visible = False PlaceHolder1.Controls.Add(wuc) End If End If End SubEnd Class<%@ Control Language="VB" AutoEventWireup="false" CodeFile="UC1.ascx.vb" Inherits="UC1" %>UC1<br /><asp:Button ID="Button1" runat="server" Text="Open UC2" />Partial Class UC1 Inherits System.Web.UI.UserControl Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' show the other control Dim wuc As Web.UI.UserControl = CType(LoadControl("~/UC2.ascx"), Web.UI.UserControl) Dim holder As PlaceHolder = CType(ControlExtensions.FindControlRecursive(Page, "PlaceHolder1"), PlaceHolder) wuc.ID = "UC2" wuc.Visible = True holder.Controls.Add(wuc) Dim hf As Label = CType(ControlExtensions.FindControlRecursive(Page, "hf"), Label) hf.Text = "UC2" End SubEnd Class<%@ Control Language="VB" AutoEventWireup="false" CodeFile="UC2.ascx.vb" Inherits="UC2" %>UC2<br /><asp:Button ID="Button1" runat="server" Text="Open UC1" />Partial Class UC2 Inherits System.Web.UI.UserControl Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' show the other control Dim wuc As Web.UI.UserControl = CType(LoadControl("~/UC1.ascx"), Web.UI.UserControl) Dim holder As PlaceHolder = CType(ControlExtensions.FindControlRecursive(Page, "PlaceHolder1"), PlaceHolder) wuc.ID = "UC1" wuc.Visible = True holder.Controls.Add(wuc) Dim hf As Label = CType(ControlExtensions.FindControlRecursive(Page, "hf"), Label) hf.Text = "UC1" End SubEnd ClassImports Microsoft.VisualBasicPublic Class ControlExtensions ''' <summary> ''' recursively finds a child control of the specified parent. ''' </summary> ''' <param name="control"></param> ''' <param name="id"></param> ''' <returns></returns> Public Shared Function FindControlRecursive(ByVal control As Control, ByVal id As String) As Control If control Is Nothing Then Return Nothing End If 'try to find the control at the current level Dim ctrl As Control = control.FindControl(id) If ctrl Is Nothing Then 'search the children For Each child As Control In control.Controls ctrl = FindControlRecursive(child, id) If Not ctrl Is Nothing Then Exit For End If Next child End If Return ctrl End FunctionEnd Class