I had created rad dynamic controls which consists of(textbox, ddl, combobox etc..) and also created dynamic rad wizardsteps, every wizardstep contains a dynamic table.
I want insert those dynamic rad controls into wizardstep table, to achieve this i used sessions but its giving a exception says Script controls may not be registered after PreRender..
When i tried to insert these controls in static asp table it works fine, while adding to a dynamic table i am getting this issue. What i had done wrong, how can i resolve this issue.
Please guide me i am new to telerik controls.
Code Behind:
protected void Page_Load(object sender, EventArgs e){ if (!IsPostBack) { GenerateWizardSteps(2); RadListView1.DataSource = GetDatatable(); RadListView1.DataBind(); } else { RecreateControls("rtb", "RadTextBox"); }}public DataTable GetDatatable(){ DataTable dt = new DataTable(); dt.Columns.Add("Label"); dt.Rows.Add("RadTextBox"); dt.Rows.Add("RadComboBox"); dt.Rows.Add("RadDateTimePicker"); dt.Rows.Add("RadDropDownList"); dt.Rows.Add("RadDatePicker"); dt.Rows.Add("RadNumericTextBox"); dt.Rows.Add("RadToggleButton"); dt.Rows.Add("RadBinaryImage"); return dt;}//Creating WizardStepspublic void GenerateWizardSteps(int formID){ RadWizardStep step; step = new RadWizardStep(); step.ClientIDMode = ClientIDMode.Static; step.ID = "step_" + i.ToString(); controlTbl = new Table(); controlTbl.ClientIDMode = ClientIDMode.Static; controlTbl.ID = "controlTable_" + i.ToString(); Session["myTable"] = controlTbl; step.Controls.Add(controlTbl); wizardControl.WizardSteps.Add(step); }protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e){ string commandText = e.Argument.ToString().Trim(); string[] splitdata = commandText.Split('&'); commandText = splitdata[0]; string controlName = splitdata[1]; switch (controlName) { case "RadTextBox": int cnt1 = FindOccurence("rtb") + 1; DynamicControls dcTextBox = new DynamicControls(); TableCell txtlblRad = dcTextBox.Controlscreation("RadLabel", "", cnt1, cnt1, "Text Box:", "", 0); TableCell txtRad = dcTextBox.Controlscreation("RadTextBox", "", cnt1, cnt1, "", "", 0); TableRow txtRow = new TableRow(); txtRow.Cells.Add(txtlblRad); txtRow.Cells.Add(txtRad); Table controlTbl = Session["myTable"] as Table; controlTbl.Rows.Add(txtRow); //Table1.Rows.Add(txtRow); break; }}private void RecreateControls(string ctrlPrefix, string ctrlType){ string[] ctrls = Request.Form.ToString().Split('&'); int cnt = FindOccurence(ctrlPrefix); if (cnt > 0) { for (int k = 1; k <= cnt; k++) { for (int i = 0; i < ctrls.Length; i++) { if (ctrls[i].Contains(ctrlPrefix + "_" + k.ToString())) { if (ctrlType == "RadTextBox") { DynamicControls dcTextBox = new DynamicControls(); TableCell txtlblRad = dcTextBox.Controlscreation("RadLabel", "", k, k, "TextBox:", "", 0); TableCell txtRad = dcTextBox.Controlscreation("RadTextBox", "", k, k, "", "", 0); TableRow txtRow = new TableRow(); txtRow.Cells.Add(txtlblRad); txtRow.Cells.Add(txtRad); Table controlTbl = Session["myTable"] as Table; controlTbl.Rows.Add(txtRow); } break; } } } }}private int FindOccurence(string substr){ string reqstr = Request.Form.ToString(); return ((reqstr.Length - reqstr.Replace(substr, "").Length) / substr.Length);}