wood's blog

Dontnet

动态创建控件和取值

//原帖: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]   得到 

阅读更多
文章标签: textbox string .net 360
个人分类: Asp.net
上一篇http://community.csdn.net/Expert/topic/5289/5289483.xml?temp=.5684778#top
下一篇 Visual Studio .NET 无法创建或打开应用程序。问题很可能是因为本地WEB本地服务器上没有安装所需的组件。请运行Visual Studio .NET安装程序并添加WEB开发组件
想对作者说点什么? 我来说一句

动态创建控件的源代码资源

2010年07月01日 61KB 下载

在VC 中如何动态创建控件

2008年11月05日 4.15MB 下载

实用例子 动态创建控件

2008年05月26日 1.66MB 下载

delphi程序运行时动态创建控件.

2010年05月31日 1.62MB 下载

没有更多推荐了,返回首页

关闭
关闭