首页 新闻 搜索 专区 学院

自定义控件 动态创建的文本框取值的问题

0
[已解决问题] 解决于 2008-09-22 12:52

代码如下:

TextBox tb = new TextBox();
tb.ID = "txtIndex";


pnPager.Controls.Add(tb);


TextBox txtIndex = new TextBox();
txtIndex = pnPager.FindControl("txtIndex") as TextBox;
pnPager.Controls.Add(txtIndex);

  if (txtIndex.Text == "")

。。。

 

为什么txtIndex的值永远为空?

问题补充: 是一个HyperLink.NavigateUrl . 我是放在!ispostback中的。 大家了解hyperLink.NavigateUrl的事件吗? 我想点击它, 再从文本框中取值。 意思就是说: hyperlink.NavigateUrl="xxx.aspx?index="+Textbox.Text;
问天何必的主页 问天何必 | 老鸟四级 | 园豆:3301
提问于:2008-09-10 12:29
< >
分享
最佳答案
0

看了这篇文章你就明白了。

原文:http://www.codeproject.com/KB/aspnet/lifecycle.aspx

翻译:http://www.cnblogs.com/mythzz/articles/683240.html

奇军 | 菜鸟二级 |园豆:265 | 2008-09-10 13:31
其他回答(3)
0

是在Page_Load中动态添加事件吧?如果是的话需要加if(!IsPostBack)条件.

玉开 | 园豆:8822 (大侠五级) | 2008-09-10 12:45
0

Request.Form["txtIndex"]

看有没有值

zjy | 园豆:3194 (老鸟四级) | 2008-09-10 13:18
0

如果你是动态添加控件的话,那么在初始化这个控件的时候,也就是你的这段话:

TextBox tb = new TextBox(); 
tb.ID = "txtIndex";


pnPager.Controls.Add(tb); 

 

不能放在if(!IsPostBack)这个判断中,不然这个值永远也取不到的

直接在page_load中进行初始化就行了。

李.net | 园豆:1072 (小虾三级) | 2008-09-10 13:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册