I have created radwizardsteps dynamically, which is in a user control, onstep change i am creating another rad wizard with 4 steps dynamically and every step contains a dynamic table. Now the problem is if i make a another ajax request the controls in the 2nd wizard getting destroyed, how can i maintain this controls can someone help out to resolve this.
Thanks.
Usercontrol.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WizardUCDemo.ascx.cs" Inherits="WebUIFrameWork.UITemplate.WizardUCDemo" %><telerik:RadCodeBlock runat="server" ID="RadCodeBlock1"><script type="text/javascript"> function OnWizardstepChange() { var radManager = null; var stepIndex = $find("<%= wizardControl.ClientID %>").get_activeIndex(); radManager = $find('<%=RadAjaxManager.GetCurrent(this.Page).ClientID%>'); radManager.ajaxRequest("StepChange&"+stepIndex); }</script></telerik:RadCodeBlock><telerik:RadWizard runat="server" RenderMode="Lightweight" ID="wizardControl" OnClientButtonClicked="OnWizardstepChange" DisplayProgressBar="false" ProgressBarPosition="Right" NavigationBarPosition="Right" NavigationButtonsPosition="Bottom" DisplayNavigationButtons="false"></telerik:RadWizard>
Usercontrol.ascx.cs:
public void GenerateSteps(){ for (int i = 1; i < 5; i++) { Step = new RadWizardStep(); Step.ID = "Step_" + i.ToString(); Step.ClientIDMode = ClientIDMode.Static; Table = new Table(); Table.ID = "Table" + i.ToString(); Table.ClientIDMode = ClientIDMode.Static; newStep.Controls.Add(newTable); UIControlsWizard.WizardSteps.Add(newStep); }aspx:
<telerik:RadCodeBlock runat="server"><script type="text/javascript"> function testMethod() { $find("<%= RadAjaxManager1.ClientID%>").ajaxRequest("demo") }</script></telerik:RadCodeBlock><telerik:RadAjaxManager runat="server" ID="RadAjaxManager1" OnAjaxRequest="RadAjaxManager1_AjaxRequest"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="wizardControl"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="wizardControl" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager> <table> <tr> <td> <uc1:WizardUCDemo runat="server" ID="WizardUCDemo1" /> </td> <td> <telerik:RadWizard runat="server" RenderMode="Lightweight" ID="RadWizard1" DisplayProgressBar="false" ProgressBarPosition="Right" NavigationBarPosition="Right" NavigationButtonsPosition="Bottom" DisplayNavigationButtons="false"> </telerik:RadWizard> </td> </tr> </table>
aspx.cs:
Table newTable; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { WizardUCDemo.GenerateSteps(); } }public void reProduceWizardSteps(){ RadWizardStep newStep; for (int i = 1; i < 5; i++) { newStep = new RadWizardStep(); newStep.ID = "newStep_" + i.ToString(); newStep.ClientIDMode = ClientIDMode.Static; newTable = new Table(); newTable.ID = "newTable" + i.ToString(); newTable.ClientIDMode = ClientIDMode.Static; TableRow tRow = new TableRow(); TableCell tCell = new TableCell(); RadTextBox rtxtBoxNew = new RadTextBox(); rtxtBoxNew.ID = "newTextBox_" + i.ToString(); rtxtBoxNew.ClientIDMode = ClientIDMode.Static; rtxtBoxNew.ClientEvents.OnKeyPress = "testMethod"; tCell.Controls.Add(rtxtBoxNew); tRow.Cells.Add(tCell); newTable.Controls.Add(tRow); newStep.Controls.Add(newTable); UIControlsWizard.WizardSteps.Add(newStep); }}protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e){ string commandText = e.Argument.ToString().Trim(); var commandData = commandText.Split('&'); commandText = commandData[0]; switch (commandText) { case "StepChange": if (Convert.ToInt32(commandData[1])==1) { reProduceWizardSteps(); } break; }}