关于获取动态插入Gridview中控件的ID的问题,请高手帮帮忙。在线等待……
我在一个事件中用代码动态的向GridView中添加了一个DropDownList控件(GridView模版中并没有添加),给DropDownList赋的ID=dll,但是在另一个事件中使用 DropDownList ddlist=(DropDownList)GridView_view.Rows[i].FindControl(ddl);却无法找到这个控件?请高手指点指点。拜谢!
具体代码如下:
protected void Button_query_Click(object sender, EventArgs e)
{
GridView_view.DataBind();
for (int row = 0; row < GridView_view.Rows.Count;row++ )
{
DropDownList ddl = new DropDownList();
ddl.ID = "ddl";
ddl.text=""; //text由其他地方得来
GridView_view.Rows[row].Cells[5].Controls.Add(ddl);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int count = 0; count < GridView_view.Rows.Count;count++ )
{
DropDownList ddlist = (DropDownList)GridView_view.Rows[count].Cells[5].FindControl("ddl"); //跟踪发
//发现这里的ddlist的值为空
string value=ddlist.text; //到这里就会出错了:
未将对象引用设置到对象的实例。
}
}
请问要如何才能得到所添加控件的ID呢?或者是如何才能得到动态添加进去的控件上的值?
------解决方案--------------------
那当然找不到,当发生别的事件时,等于重新实例化了个页面,Button_query_Click事件方法又不执行。
你需要在Page_Load里重新添加一次才行,因为每次实例化页面时都会执行一次Page_Load。