Skip Navigation LinksHome / Community & Support / Developer Productivity Tools Forums / ASP.NET > Tabstrip > Problem with the RadAjax manager/RadAjaxPanel in the radtabstrip
RadControls for ASP.NET are no longer supported (see this page for reference). In case you have inquiries about the Telerik ASP.NET AJAX controls, post them in the pertinent ASP.NET AJAX forums.

Not answered Problem with the RadAjax manager/RadAjaxPanel in the radtabstrip

Feed from this thread
  • Pams avatar

    Posted on Dec 2, 2010 (permalink)

    Hello,
    I am using RadTabstrip with two tabs(2 usercontrols for 2 tabs).
    I have many controls within each usercontrol.
    So, I need to ajaxify them.
    But I am facing problems.
    I created a sample project which is not working properly.
    Also, As shown in the wizard sample of radtabstrip, if I user
    <telerik:RadAjaxLoadingPanel runat="server" ID="LoadingPanel1" IsSticky="true">
            </telerik:RadAjaxLoadingPanel>
            <telerik:RadAjaxPanel runat="server" ID="RadAjaxPanel1" LoadingPanelID="LoadingPanel1" >
    .... radtab strip and radmultipage are placed here.
    </telerik:RadAjaxPanel>


    It is not working.
    1]  If I keep the above RadAjaxLoading and RadAjaxPanel- In the first page-once I Pick from date, it doesn't allow me to change the from date. The date picker is becoming inactive.

    2]So, I removed above bolded part..Then In the first page-I first selected country United states and state--Then I selected From date. Then the page refreshes and state information is lost.


    Here is my code

    default.aspx

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RadTabStripsample._Default" %>
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server" method="post">
        <div>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX="false" >
            <%--<AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadTabStrip1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadTabStrip1" />
                        <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>    --%>
        </telerik:RadAjaxManager>
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <div>    
            <%--<telerik:RadAjaxLoadingPanel runat="server" ID="LoadingPanel1" IsSticky="true">
            </telerik:RadAjaxLoadingPanel>
            <telerik:RadAjaxPanel runat="server" ID="RadAjaxPanel1" LoadingPanelID="LoadingPanel1" EnableAJAX="false">--%>
                <asp:UpdatePanel runat="server" ID="AjaxPanel1" >
                 </asp:UpdatePanel>
                <div style="float: left; width: 500px">
                    <telerik:RadTabStrip ID="RadTabStrip1" SelectedIndex="0" runat="server" MultiPageID="RadMultiPage1"
                        Skin="Sunset" OnTabClick="sample">
                    </telerik:RadTabStrip>
                    <telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" OnPageViewCreated="RadMultiPage1_PageViewCreated">
                    </telerik:RadMultiPage>
                </div>           
            <%--</telerik:RadAjaxPanel>--%>
        </div>    
        </div>
        </form>
    </body>
    </html>

    Default.aspx

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Telerik.Web.UI;

    namespace RadTabStripsample
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {

                    AddTab("ExpenseHeader", true);

                    RadPageView pageView = new RadPageView();
                    pageView.ID = "ExpenseHeader";
                    RadMultiPage1.PageViews.Add(pageView);

                    AddTab("ExpenseEntry", false);
                }
                if (Page.IsPostBack)
                {
                }
            }
            private void AddTab(string tabName, bool enabled)
            {
                RadTab tab = new RadTab(tabName);
                tab.Enabled = enabled;
                RadTabStrip1.Tabs.Add(tab);
            }
            protected void RadMultiPage1_PageViewCreated(object sender, RadMultiPageEventArgs e)
            {
                string userControlName = e.PageView.ID + ".ascx";

                Control userControl = LoadControl(userControlName);
                userControl.ID = e.PageView.ID + "userControl";
                e.PageView.Controls.Add(userControl);
            }
            protected void sample(object sender, RadTabStripEventArgs e)
            {
                if (e.Tab.Text == "ExpenseHeader")
                {
                }
            }
        }
    }

    user control1--ExpenseHeader.ascx

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ExpenseHeader.ascx.cs" Inherits="RadTabStripsample.ExpenseHeader" %>
    <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>

    <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">            
    <script language="javascript" type="text/javascript">
     function itemsLoaded(sender, e) {
            var item = null;
            if (sender.get_items().get_count() > 0) {
                if (item = sender.findItemByText("--Please Select")) {
                    // Note: This will trigger the onchange event
                    item.select();
                } else {
                    // Note: This will not trigger the onchange event
                    sender.set_text("--Please Select");
                }
            }
        }

        function loadStates(item) {
            var StatePicker = $find("<%= StatePicker.ClientID %>");
            StatePicker.clearItems();
           var CountryId = item.get_value();
             if (CountryId == 'US') {
                StatePicker.requestItems(CountryId);
                var input = StatePicker.get_inputDomElement();
                input.focus();
            }
            else {
                var comboItem = new Telerik.Web.UI.RadComboBoxItem();
                comboItem.set_text("Not Listed");
                comboItem.set_value("Not Listed");
                StatePicker.trackChanges();
                StatePicker.get_items().add(comboItem);
                StatePicker.commitChanges();
                comboItem.select();
            }
        }
        
        </script>
    </telerik:RadScriptBlock>
    <telerik:RadAjaxManagerProxy ID="RadAjaxManager2" runat="server">
            <AjaxSettings>
                 <telerik:AjaxSetting AjaxControlID="PeriodFrom">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="PeriodFrom" />
                        <telerik:AjaxUpdatedControl ControlID="PeriodTo" />
                    </UpdatedControls>
                 </telerik:AjaxSetting>
            </AjaxSettings>
    </telerik:RadAjaxManagerProxy>
     

    <div class="oneCol" >
            <asp:Label ID="lbl_Country" AssociatedControlID="CountryPicker"
                runat="server" Text="Country"></asp:Label>
            <telerik:RadComboBox ID="CountryPicker" runat="server" Height="200px"
                OnDataBound="CountryPicker_DataBound"
                OnClientSelectedIndexChanged="loadStates">
                <Items>
                <telerik:RadComboBoxItem Text="Select Country" Value=" " />
                <telerik:RadComboBoxItem Text="UNITED STATES" Value="US" />
                <telerik:RadComboBoxItem Text="CANADA" Value="CAN" />
                <telerik:RadComboBoxItem Text="MEXICO" Value="MEX" />
                </Items>
            </telerik:RadComboBox>
    </div>  
     <div class="oneCol">
        <asp:Label ID="lbl_TransactionStateCity" AssociatedControlID="StatePicker"
            runat="server" Text="State"></asp:Label>
        <div>       
            <telerik:RadComboBox ID="StatePicker" runat="server"
               OnClientItemsRequested="itemsLoaded"
               OnItemsRequested="StatePicker_ItemRequested">
            </telerik:RadComboBox>
        </div>       
    </div>  
     <div>
            <asp:Label ID="lbl_ExpenseReportName" AssociatedControlID="ExpenseReportName"
                runat="server" Text="Report Name"></asp:Label>
            <asp:TextBox ID="ExpenseReportName" runat="server"></asp:TextBox>
        </div>    
        <div>
            <asp:Label runat="server" ID="lbl_PeriodFrom" AssociatedControlID="PeriodFrom" Text="Period From"></asp:Label>       
            <telerik:RadDatePicker ID="PeriodFrom"  runat="server" AutoPostBack="true" OnSelectedDateChanged="PeriodFrom_SelectedDateChanged" >
             
            </telerik:RadDatePicker>
        </div>
        <div>
            <asp:Label runat="server" ID="lbl_PeriodTo" AssociatedControlID="PeriodTo" Text="Period To"></asp:Label>       
            <telerik:RadDatePicker ID="PeriodTo" runat="server"  >
            </telerik:RadDatePicker>
        </div>
        <div>
                <asp:Button ID="btn_Create" runat="server" OnClick="btn_Create_Click"
                    Text="Proceed" />
        </div>

    ExpenseHeader.ascx.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Telerik.Web.UI;
    using System.Data;

    namespace RadTabStripsample
    {
        public partial class ExpenseHeader : System.Web.UI.UserControl
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    PeriodTo.SelectedDate = DateTime.Now;
                    PeriodTo.DateInput.Enabled = false;
                    PeriodFrom.SelectedDate = DateTime.Now.AddDays(-7);
                    PeriodFrom.DateInput.Enabled = false;
                }
                if (IsPostBack)
                {
                }
            }
            protected void PeriodFrom_SelectedDateChanged(object sender, Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs e)
            {
                PeriodTo.MinDate = Convert.ToDateTime(PeriodFrom.SelectedDate);
            }
            protected void btn_Create_Click(object sender, EventArgs e)
            {
                GoToNextTab();
            }

            private void GoToNextTab()
            {
                ContentPlaceHolder placeHolder = (ContentPlaceHolder)Page.Master.FindControl("CenterPanelPlaceHolder");
                RadTabStrip tabStrip = (RadTabStrip)placeHolder.FindControl("RadTabStrip1");
                RadTab expenseTransactionTab = tabStrip.FindTabByText("ExpenseEntry");
                expenseTransactionTab.Enabled = true;
                expenseTransactionTab.Selected = true;

                GoToNextPageView();
            }

            private void GoToNextPageView()
            {
                ContentPlaceHolder placeHolder = (ContentPlaceHolder)Page.Master.FindControl("CenterPanelPlaceHolder");
                RadMultiPage multiPage = (RadMultiPage)placeHolder.FindControl("RadMultiPage1");
                RadPageView expenseTransactionPageView = multiPage.FindPageViewByID("ExpenseEntry");
                if (expenseTransactionPageView == null)
                {
                    expenseTransactionPageView = new RadPageView();
                    expenseTransactionPageView.ID = "ExpenseEntry";
                    multiPage.PageViews.Add(expenseTransactionPageView);
                }
                expenseTransactionPageView.Selected = true;
            }  

             protected void CountryPicker_DataBound(object sender, EventArgs e)
            {
                var combo = (RadComboBox)sender;
                combo.Items.Insert(0, new RadComboBoxItem("--Select Country", string.Empty));
            }       
            protected void StatePicker_ItemRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
            {
                string countryCode = e.Text;
                RadComboBoxItem _item1=new RadComboBoxItem("State1","State1");   
                RadComboBoxItem _item2=new RadComboBoxItem("State2","State2");
                RadComboBoxItem _item3=new RadComboBoxItem("State3","State3");
                StatePicker.Items.Add(_item1);
                StatePicker.Items.Add(_item2);
                StatePicker.Items.Add(_item3);            
            }
        }
    }

    usercontrol2--EmployeeEntry.ascx

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ExpenseEntry.ascx.cs" Inherits="RadTabStripsample.ExpenseEntry" %>
    <table class="tableLabels">
        <tr>
            <td>Name:</td>
            <td><asp:TextBox runat="server" ID="TextBox1"></asp:TextBox></td>
        </tr>
        <tr>
            <td>Surname:</td>
            <td><asp:TextBox runat="server" ID="TextBox2"></asp:TextBox></td>
        </tr>
        <tr>
            <td>Birthday:</td>
            <td><asp:TextBox runat="server" ID="TextBox3"></asp:TextBox></td>
        </tr>
        <tr>
            <td>Interests:</td>
            <td><asp:TextBox runat="server" ID="TextBox4"></asp:TextBox></td>
        </tr>
    </table>
    <asp:Button ID="Button1" runat="server" Text="Submit" CssClass="exButton" OnClick="Button1_Click" />
    <br/><asp:Label id="Label1" runat="server" style="border:0; margin-left: 75px;" Width="256"></asp:Label>

    EmployeeEntry.ascx.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    namespace RadTabStripsample
    {
        public partial class ExpenseEntry : System.Web.UI.UserControl
        {
            protected void Page_Load(object sender, EventArgs e)
            {

            }
            protected void Button1_Click(object sender, System.EventArgs e)
            {
                Label1.Text = "The personal data has been saved";
            }
        }
    }

    I am stuck with these issues. I have many controls which needs to be ajaxified.
    Any help pls,
    Thanks in advance

  • Dimitar Terziev Dimitar Terziev admin's avatar

    Posted on Dec 8, 2010 (permalink)

    Hi Pams,

    I've made some changes to the AjaxManager in ExpenseHeader user control so that when you select a date the info is not cleared.
    Sending files with the changes.


    Greetings,
    Dimitar Terziev
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
    Attached files

Back to Top

Skip Navigation LinksHome / Community & Support / Developer Productivity Tools Forums / ASP.NET > Tabstrip > Problem with the RadAjax manager/RadAjaxPanel in the radtabstrip