[求助]为什么在服务器端获取不到DataList模板列中动态生成的TextBox啊?
jj_ii 2009-01-16 09:02:10 我在DataList控件的ItemDataBound事件中,动态生成了一个TextBox控件,并将它添加到DataList中:
protected void DataList_ItemDataBound(object sender, DataListItemEventArgs e)
{
TextBox txtBo = new TextBox(); //动态生成了一个TextBox控件
DataRowView drv = (DataRowView)e.Item.DataItem; //得到DataRowView数据
txtBo.Text = "t" + drv[0].ToString(); //将DataRowView中的数据放置在文本框中
txtBo.ID = drv[1].ToString(); //将DataRowView中的数据放置在文本框中
e.Item.Controls.Add(txtBo); //将生成的TextBox加入到DataList中
}
但是,在把页面回传到服务器时,遍历DataList内的子控件时,怎么也遍历不到动态生成的TextBox!!!!
遍历的代码如下:(其中DataStuNo是DataList的ID名称,这段代码在点击页面上按钮触发)
for (int i = 0; i < DataStuNo.Items.Count; i++)
{
foreach (Control c in DataStuNo.Items[i].Controls)
{
if (c is TextBox)
{
TextBox tb = (TextBox)c;
...
//....处理TextBox
//....中的数据
}
//下面调试结果中没遍历到TextBox
Label1.Text = c.getType().ToString() + " <br />" + Label1.Text ;
}
}
请问为什么在服务器端获取不到动态生成的TextBox啊??我写的程序不对吗?怎样才能获取TextBox控件呢??恳请高手指点!!!