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;
}
}