读书人

取得动态添加控件的值分不够再加解决

发布时间: 2012-01-12 22:11:58 作者: rapoo

取得动态添加控件的值,分不够再加
以下是我创建控件的代码:
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等来取值!
高人指点一下,谢谢!

[解决办法]
来了

读书人网 >C#

热点推荐