Получите динамическое значение выпадающего списка.
Я написал код для динамического создания таблицы. Таблица содержит текстовое поле и раскрывающийся список. Я пытаюсь создать таблицу на основе выбранного значения выпадающего списка, когда я выбираю выпадающий список типа "Splitter1:5", чем строка таблицы будет создавать 5 . Первый раз это удалось сделать успешно, когда я попробовал второй раз, я не получил значение выпадающего списка. я делюсь своим кодом, пожалуйста, помогите мне.
Что я уже пробовал:
aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="testform.aspx.cs" Inherits="testform" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:DropDownList ID="ddlTextBoxes" runat="server"> <asp:ListItem Value="2" Text="Splitter1:2" /> <asp:ListItem Value="4" Text="Splitter1:4" /> <asp:ListItem Value="8" Text="Splitter1:8" /> <asp:ListItem Value="1" Text="Joint" /> <asp:ListItem Value="0" Text="OLT" /> </asp:DropDownList> <asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" /><br /> <asp:Panel ID="container" runat="server" Visible="false"> <asp:Button ID="btnSubmit" runat="server" Text="Process" OnClick="Submit" /></asp:Panel> </div> </form> </body> </html>
using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class testform : System.Web.UI.Page { DropDownList DDL; int i; ArrayList arry_value = new ArrayList(); object[] obj; Panel pn; protected void Page_Load(object sender, EventArgs e) { //ViewState["droplist"] = obj; } protected void btnAdd_Click(object sender, EventArgs e) { int numOfTxt = Convert.ToInt32(ddlTextBoxes.SelectedItem.Value); // DataTable dt = new DataTable(); //dt.Columns.Add("First Textbox"); // dt.Columns.Add("Dropdownlist"); // dt.Columns.Add("Last Textbox"); var table = new Table(); for (i = 0; i < numOfTxt; i++) { var row = new TableRow(); var cell = new TableCell(); // var thr = new TableHeaderRow(); // var heading = new TableHeaderCell(); //TableHeaderCell thPNumber = new TableHeaderCell(); // cell.Attributes.Add("runat", "server"); TextBox textbox = new TextBox(); textbox.ID = "Textbox" + i; textbox.Text = "text" + i; textbox.Width = new Unit(180); TextBox textbox1 = new TextBox(); textbox1.ID = "Textbox1" + i; textbox1.Text = "text1" + i; textbox1.Width = new Unit(180); DDL = new DropDownList(); DDL.ID = "DDL1" + i; DDL.Items.Add("Select Splitter"); DDL.Items.Add(new ListItem("Splitter1:2", "2")); DDL.Items.Add(new ListItem("Splitter1:4", "4")); DDL.Items.Add(new ListItem("Splitter1:8", "8")); DDL.Items.Add(new ListItem("Joint", "1")); DDL.Items.Add(new ListItem("ONT", "0")); DDL.AutoPostBack = true; DDL.SelectedIndexChanged += new System.EventHandler(DDL_SelectedIndexChanged); cell.Controls.Add(textbox1); cell.Controls.Add(DDL); cell.Controls.Add(textbox); row.Cells.Add(cell); table.Rows.Add(row); arry_value.Add(DDL.ID); foreach (object obj in arry_value) { var idcollection = new string[] { obj.ToString() }; } } pn = new Panel(); pn.ID = "pan" + i + 1; this.form1.Controls.Add(pn); container.Visible = true; Button btnSubmit = new Button(); btnSubmit.ID = "btnSubmit"; btnSubmit.Text = "Processone"; btnSubmit.Click += new System.EventHandler(Submit); container.Controls.Add(table); //pn.Controls.Add(btnSubmit); // container.Controls.AddAt(0, table); } protected void DDL_SelectedIndexChanged(object sender, EventArgs e) { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Record Inserted Successfully')", true); } protected void Submit(object sender, EventArgs e) { //Student stud = (Student)ViewState["CurrentStudent"]; //DropDownList ddl = (DropDownList)container.FindControl("DDL1"+i); int numOfTxt = 5; Label lb = new Label(); //lb.Text = DDL.SelectedValue.ToString(); //int numOfTxt = Convert.ToInt32(lb); string drpvalue; for (int j = 0; j < Convert.ToInt32(ddlTextBoxes.SelectedItem.Value); j++) { drpvalue = "DDL12" + i + ".SelectedItem.Value"; //int te = Convert.ToInt32(drpvalue); // numOfTxt += Convert.ToInt32(DDL120.SelectedItem.Value); } //int numOfTxt = Convert.ToInt32(ddlTextBoxes.SelectedItem.Value); var table = new Table(); DataTable dt = new DataTable(); for (int i = 0; i < numOfTxt; i++) { var row = new TableRow(); var cell = new TableCell(); // dt.Columns.Add("TextOne1"); cell.Attributes.Add("runat", "server"); TextBox textbox = new TextBox(); textbox.ID = "Textbox" + i; textbox.Text = "text" + i; textbox.Width = new Unit(180); TextBox textbox1 = new TextBox(); textbox1.ID = "Textbox1" + i; textbox1.Text = textbox1.Text; textbox1.Width = new Unit(180); DropDownList DDLs = new DropDownList(); DDLs.ID = "DDL12" + i; // count= Convert.ToInt32( DDL.ID = "DDL12" + i); DDLs.Items.Add("Select Splitter"); DDLs.Items.Add(new ListItem("Splitter1:2", "2")); DDLs.Items.Add(new ListItem("Splitter1:4", "4")); DDLs.Items.Add(new ListItem("Splitter1:8", "8")); DDLs.Items.Add(new ListItem("Joint", "1")); DDLs.Items.Add(new ListItem("ONT", "0")); //DDLs.AutoPostBack = true; // DDLs.TextChanged += dropDown_TextChanged; // dt.Rows.Add(textbox1); cell.Controls.Add(textbox1); // dt.Columns.Add("ListDropdown"); cell.Controls.Add(DDLs); // dt.Columns.Add("Textbodx"); cell.Controls.Add(textbox); row.Cells.Add(cell); table.Rows.Add(row); } Button btnSubmit = new Button(); btnSubmit.ID = "btnSubmit"; btnSubmit.Text = "Process"; btnSubmit.Click += new System.EventHandler(Submit); Panel pans = new Panel(); pans.ID = "panss"; this.form1.Controls.Add(pans); pans.Controls.AddAt(0, table); pans.Controls.Add(btnSubmit); pans.Visible = true; //pn.Visible = true; } }
F-ES Sitecore
Любые элементы управления, которые вы создаете сами, не "запоминаются" между обратными отправками, поэтому вам приходится воссоздавать их каждый раз при загрузке.
Ziee-M
Вы должны были установить этот комментарий в качестве ответа.