Hi! I am trying to create HelpDesk functionality using RadWizard to create new incident.
On first step user selects incident category from RadComboBox (hardware problems, software etc)
Then i dynamically create 2 new steps with a different markup depending on combobox selected value.
Everything works fine until user goes back to first step and selects new RadComboBox value.
Functionality allows to do such thing. And i have to delete next steps and create new ones with other markup.
I found simple solution to disable RadComboBox, but it seems to be uncorrect solution. Can you help me?
Here is my code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 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
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
asp:ScriptManager
runat
=
"server"
/>
<
div
>
<
script
type
=
"text/javascript"
>
</
script
>
<
telerik:RadWizard
runat
=
"server"
ID
=
"RadWizard1"
Height
=
"360px"
OnNextButtonClick
=
"RadWizard1_NextButtonClick"
OnWizardStepCreated
=
"RadWizard1_WizardStepCreated"
DisplayCancelButton
=
"True"
>
<
WizardSteps
>
<
telerik:RadWizardStep
ID
=
"RadWizardStep1"
runat
=
"server"
Title
=
"Book Group Vacation"
StepType
=
"Start"
DisplayCancelButton
=
"True"
>
<
telerik:RadComboBox
ID
=
"RadComboBox1"
Runat
=
"server"
AutoPostBack
=
"False"
>
<
Items
>
<
telerik:RadComboBoxItem
runat
=
"server"
Text
=
"1"
Value
=
"1"
/>
<
telerik:RadComboBoxItem
runat
=
"server"
Text
=
"2"
Value
=
"2"
/>
<
telerik:RadComboBoxItem
runat
=
"server"
Text
=
"3"
Value
=
"3"
/>
</
Items
>
</
telerik:RadComboBox
>
<
br
/>
<
label
>ComboBox Value Is </
label
><
span
id
=
"CB"
runat
=
"server"
></
span
>
</
telerik:RadWizardStep
>
</
WizardSteps
>
</
telerik:RadWizard
>
</
div
>
</
form
>
</
body
>
</
html
>
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Telerik.Web.UI;
public partial class Default : System.Web.UI.Page
{
private static bool _stepCreated = false;
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack && !_stepCreated)
{
CB.InnerText = RadComboBox1.SelectedValue.ToString();
RadWizardStep step2 = new RadWizardStep();
step2.ID = "Second";
RadWizard1.WizardSteps.Add(step2);
RadWizardStep step3 = new RadWizardStep();
step3.ID = "Third";
RadWizard1.WizardSteps.Add(step3);
RadWizardStep completeStep = new RadWizardStep();
completeStep.ID = "Complete";
RadWizard1.WizardSteps.Add(completeStep);
_stepCreated = true;
RadComboBox1.Enabled = false;
RadWizard1.ActiveStepIndex = RadWizard1.WizardSteps[1].Index;
}
}
protected void rbRemove_Click(object sender, EventArgs e)
{
RadWizardStep step = ((RadWizardStep)((RadButton)sender).Parent);
RadWizard1.WizardSteps.Remove(step);
RadWizard1.ActiveStepIndex = 0;
}
protected void RadWizard1_WizardStepCreated(object sender, Telerik.Web.UI.WizardStepCreatedEventArgs e)
{
if (e.RadWizardStep.ID == "Complete")
{
e.RadWizardStep.StepType = RadWizardStepType.Complete;
Label label = new Label();
label.Text = "Registration succeeded!";
e.RadWizardStep.Controls.Add(label);
}
else
{
e.RadWizardStep.CssClass = "passenger";
string[] labelTitle = new string[] { "First Name:", "Second Name:", "Third Name:" };
for (int i = 0; i <
labelTitle.Length
; i++)
{
RadTextBox
rcbFirstName
=
new
RadTextBox();
rcbFirstName.LabelWidth
=
Unit
.Pixel(150);
rcbFirstName.Width
=
Unit
.Pixel(500);
rcbFirstName.Label
=
labelTitle
[i];
e.RadWizardStep.Controls.Add(rcbFirstName);
e.RadWizardStep.Controls.Add(new Literal() { Text = "<br />" });
}
RadTextBox rcbVal = new RadTextBox();
rcbVal.LabelWidth = Unit.Pixel(150);
rcbVal.Width = Unit.Pixel(500);
rcbVal.Label = "ComboBoxValue";
rcbVal.Text = RadComboBox1.SelectedValue.ToString();
e.RadWizardStep.Controls.Add(rcbVal);
e.RadWizardStep.Controls.Add(new Literal() { Text = "<
br
/>" });
RadButton rbRemove = new RadButton();
rbRemove.Text = "Remove Person";
rbRemove.Click += rbRemove_Click;
e.RadWizardStep.Controls.Add(rbRemove);
}
}
protected void RadWizard1_NextButtonClick(object sender, WizardEventArgs e)
{
RadWizard wiz = (RadWizard)sender;
Response.Write(wiz.WizardSteps[e.CurrentStepIndex].ID);
Response.Write(wiz.WizardSteps[e.NextStepIndex].ID);
}
}