关于获取动态插入Gridview中控件的ID的问题,请高手帮帮忙。在线等待……

源_程序 2012-04-28 04:23:27
我在一个事件中用代码动态的向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呢?或者是如何才能得到动态添加进去的控件上的值?
...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
源_程序 2012-04-28
  • 打赏
  • 举报
回复
十分感谢!
功能已经实现了,但还有一点疑惑:
从逻辑上看,当触发我要执行的事件时,首先Page_Load事件会被执行,那么在Page_Load中重新添加一次控件,控件上的数据就会变成初始的状态,而非我后来所选择的值,但事实上却能将我所选择的值存入数据库,请问这是为什么呢?
跟踪了几遍,我还是没有发现这个问题大答案,您能告诉我吗?谢谢!
dalmeeme 2012-04-28
  • 打赏
  • 举报
回复
那当然找不到,当发生别的事件时,等于重新实例化了个页面,Button_query_Click事件方法又不执行。
你需要在Page_Load里重新添加一次才行,因为每次实例化页面时都会执行一次Page_Load。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧