Как добавить radcontrols в динамическую созданную таблицу
Я создал динамические элементы управления rad, которые состоят из(textbox, ddl, combobox и т. д.), а также создал динамические rad wizardsteps, каждый wizardstep содержит динамическую таблицу.
Я хочу вставить эти динамические элементы управления rad в таблицу wizardstep, чтобы достичь этого, я использовал сеансы, но его исключение говорит, что элементы управления скриптами не могут быть зарегистрированы после Пререндера..
Когда я попытался вставить эти элементы управления в статическую таблицу asp, она работает нормально, а при добавлении в динамическую таблицу я получаю эту проблему. Что я сделал не так, как я могу решить этот вопрос.
Пожалуйста, направьте меня, я совсем новичок в программировании.
Что я уже пробовал:
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 WizardSteps public 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) / 2); return ((reqstr.Length - reqstr.Replace(substr, "").Length) / substr.Length); }
Gerry Schmitz
ГАДЮКА.Нэт, я не такая умная; что богатый клиент (например в WPF)