动态创建控件和取值

//原帖:http://topic.csdn.net/t/20051019/11/4336067.html
//我只摘下了,对我有用的东西。
//学习动态创建控件和取值的方法


  代码如下:  
   
  for(int   i=0;i<5;i++)  
  {  
  TextBox   tbcz=new   TextBox();  
  tbcz.ID="cz"+i;  
  this.Panel2.Controls.Add(tbcz);  
  }  
   
  用户输入值后,我去对应控件里面的值出错!  
  取值代码:  
  for(int   i=0;i<5;i++)  
  {  
  string   cz_s="cz"+i.ToString();  
  string   cz_t=((TextBox)Page.FindControl(cz_s)).Text.Trim();     //这句出错  
  .......  
  }  

-------------------------------------------------------------------------

4 楼daishengs(横舟摆渡)回复于 2005-10-19 11:48:51 得分 2
我以前是这样用的,你可以修改一下  
                                  private   static   void   FindTextBox(System.Web.UI.Control   oControl,string   ControlID,string   ControlValue)  
                                  {  
                                                  if(oControl.HasControls())  
                                                  {  
                                                                  foreach   (System.Web.UI.Control   oChildControl   in   oControl.Controls)  
                                                                  {  
                                                                                  if(   (oChildControl.ID==ControlID)&&(oChildControl   is   System.Web.UI.WebControls.TextBox))  
                                                                                  {  
                                                                                                  ((System.Web.UI.WebControls.TextBox)oChildControl).Text=ControlValue;  
                                                                                                  //oControl   =   oChildControl;  
                                                                                                  //((System.Web.UI.WebControls.TextBox)oControl).Text=ControlValue;  
                                                                                                  return;  
                                                                                  }  
   
                                                                                  FindDataGrid(oChildControl,ControlID,ControlValue);  
                                                                  }  
                                                  }  
                                  }  
   
                                  public   static   void   SetControl(System.Web.UI.Control   Page,string   ControlID,string   ControlValue)  
                                  {  
   
                                                  FindTextBox(Page,ControlID,ControlValue);  
                                  }

 

-------------------------------------------------------------------------

6 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2005-10-19 11:56:55 得分 2
动态创建控件的语句在什么地方?如果是在Page_Load方法中,
不能放在if(!Page.IsPostBack)块中,
因为动态创建的控件无法正确保存和获取视图状态,
所以页面每次加载都必须重新创建才行。


-------------------------------------------------------------------------

8 楼vzxq(灵感人)回复于 2005-10-19 13:57:53 得分 15
应该是你提交后,找不到动态生成的控件了  
  用这个方法试试  
  TextBox   txt   =   new   TextBox();  
   
  for(int   i=0;i<5;i++)  
  {  
   
  string   cz_t=Request.Form["txt"+i];  
  .......  
  }  


-------------------------------------------------------------------------

12 楼anheizhizi(目标:★★★★★)回复于 2005-10-19 17:01:03 得分 2
生成控件的代码不要写在
if(!Page.IsPostBack)   里或   用Request.Form[ID]   得到 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值