取得动态添加控件的值,分不够再加
以下是我创建控件的代码:
int j = 100;
if (i < j)
{
Button delete = new Button();
delete.ID = "delete " + i.ToString();
delete.Text = "删除 ";
TextBox arr_dt = new TextBox();
arr_dt.ID = "arr_dt " + i.ToString();
arr_dt.Text = DateTime.Today.ToShortDateString();
arr_dt.Width = 90;
TextBox lea_dt = new TextBox();
lea_dt.ID = "lea_dt " + i.ToString();
lea_dt.Text = DateTime.Today.AddDays(+1).ToShortDateString();
lea_dt.Width = 90;
TextBox rm_num = new TextBox();
rm_num.ID = "rm_num " + i.ToString();
rm_num.Text = "1 ";
rm_num.Width = 30;
TextBox pre_num = new TextBox();
pre_num.ID = "pre_num " + i.ToString();
pre_num.Text = "1 ";//是否取床位数?
pre_num.Width = 30;
DropDownList rm_typ = new DropDownList();
rm_typ.ID = "rm_typ " + i.ToString();
rm_typ.Width = 150;
rm_typ.Items.Clear();
foreach (ListItem li in DropDownList3.Items)
{
rm_typ.Items.Add(new ListItem(li.Text, li.Value));
}
rm_typ.SelectedIndex = 0;
Panel1.Controls.Add(arr_dt);
Panel1.Controls.Add(lea_dt);
Panel1.Controls.Add(rm_typ);
Panel1.Controls.Add(rm_num);
Panel1.Controls.Add(pre_num);
Panel1.Controls.Add(delete);
delete.Attributes.Add( "onclick ", "return confirm( '您确定要删除该预定吗? '); ");
delete.Click += new EventHandler(btnDelRow_Click);
}
因为添加的这些控件可以被删除,所以取得时候我先取得没有被删除的控件(因为一组控件的数字标示是一样的,比如textbox1,button1是一组,textbox5,button5是一组)所以我只取了button的id值,由此可知还有哪些数字标示的控件没有被删除。
于是有了下面的代码:
ArrayList bb = new ArrayList();
foreach (System.Web.UI.Control t in Panel1.Controls)
{
if (t.GetType().ToString() == "System.Web.UI.WebControls.Button ")
{
System.Web.UI.WebControls.Button tb = (Button)t;
string numcount = tb.ID.ToString().TrimEnd().Substring(6);
bb.Add(numcount);
}
这段就是取出1,2,4,5,7,9,这样的数字标示,来判断控件是否还存在。
接下来,就是问题了
比如现在控件存在1,2,4,5,7,9这几组,1,2,4,5,7,9村在数组ArrayList bb = new ArrayList();
里面。
for (int k = 0; k < bb.Count; k++)
{
TextBox arr_dt = new TextBox();
arr_dt.ID = "arr_dt " + bb[k].ToString();
TextBox lea_dt = new TextBox();
lea_dt.ID = "lea_dt " + bb[k].ToString();
TextBox rm_num = new TextBox();
rm_num.ID = "rm_num " + bb[k].ToString();
TextBox pre_num = new TextBox();
pre_num.ID = "pre_num " + bb[k].ToString();
DropDownList rm_typ = new DropDownList();
rm_typ.ID = "rm_typ " + bb[k].ToString();
}
但是我却不能用pre_num.ID,rm_typ.ID等来取值!
高人指点一下,谢谢!
[解决办法]
来了