我编写了用于动态创建表的代码。包含文本框和Dropdownlist的表。 当我选择“ Splitter1:5”之类的下拉列表时,我尝试根据所选的dropdowlist值创建表,而不是Table行将创建5。第一次成功完成时,我尝试第二次未获得下拉列表的值。 我正在分享我的代码,请帮助我。
html代码:
<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>
代码背后:
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.TextChanged += dropDown_TextChanged;
// dt.Rows.Add(textbox1);
cell.Controls.Add(textbox1);
cell.Controls.Add(DDL);
cell.Controls.Add(textbox);
//dt.Rows.Add(DDL);
//string val = DDL.SelectedItem.Value;
// string val = DDL.SelectedValue;
// dt.Rows.Add(textbox);
row.Cells.Add(cell);
// row.Cells.Add(thr);
table.Rows.Add(row);
arry_value.Add(DDL.ID);
foreach (object obj in arry_value)
{
var idcollection = new string[] { obj.ToString() };
}
//for (int i1 = 0; i1 < arry_value.Count; i1++)
//{
// //var empty1 = new string[] {arry_value[i].ToString() };
// obj = new object[] { arry_value[i]};
//}
//string count += (DDL.ID.SelectedItem.Value).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);
}
void dropDown_TextChanged(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 = 4;
int numOfTxt = 5;
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;
}
}