日期:2014-05-18  浏览次数:20839 次

关于获取动态插入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。