CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

遍历控件问题?

楼主wtiancai(博学,审问,慎思,明辨,笃行.)2005-08-31 14:19:01 在 .NET技术 / ASP.NET 提问

public   ControlCollection   GetControls(Page   page){  
  int   controlNum   =   page.Controls.Count;  
  ControlCollection   cc   =   this.CreateControlCollection();  
  for   (int   i   =   0;i   <   controlNum;i++){  
  if   (page.Controls[i].ID   !=   null){  
  cc.Add(page.Controls[i]);  
  }  
  }  
  return   cc;  
  }  
   
   
  Line   23:   if   (page.Controls[i].ID   !=   null){  
   
  Exception   Details:   System.ArgumentOutOfRangeException:   Specified   argument   was   out   of   the   range   of   valid   values.   Parameter   name:   index  
   
   
  请问问题处在哪了?还有我这种遍历页面控件的方法是否可行? 问题点数:20、回复次数:10Top

1 楼drk928(一起看斜阳)回复于 2005-08-31 14:25:45 得分 0

有点矛盾吧..Top

2 楼wtiancai(博学,审问,慎思,明辨,笃行.)回复于 2005-08-31 14:38:53 得分 0

有矛盾帮忙指点,不会忠言逆耳的Top

3 楼stoneyu(小赖-Love,love,love.)回复于 2005-08-31 16:18:56 得分 0

建议用foreachTop

4 楼wtiancai(博学,审问,慎思,明辨,笃行.)回复于 2005-08-31 16:32:48 得分 0

谢谢,能否具体点Top

5 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-08-31 16:40:00 得分 20

你的方法接受的参数是Page类型,那么你传进来的是什么参数呢?你是怎么调用这个方法的捏?Top

6 楼wtiancai(博学,审问,慎思,明辨,笃行.)回复于 2005-09-01 10:16:00 得分 0

我想实现的功能是:  
   
  建一个公共类,方法是GetControls(Page   page),获得页面上所有的控件,包括Web控件跟Html控件,参数是某个页面,然后在需要获得控件的页面上调用这个方法,不知这种方法是否可行?Top

7 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-09-01 10:41:53 得分 0

Public   Function   GetControls(ByVal   thispage   As   Page)   As   String  
                  Dim   strControl   As   String  
                  For   maxC   As   Integer   =   0   To   thispage.Controls.Count   -   1  
                          If   Not   thispage.Controls(maxC).ID   Is   Nothing   Then  
                                  strControl   &=   thispage.Controls(maxC).GetType.Name   &   "<br>"  
                                  If   thispage.Controls(maxC).HasControls   Then  
                                          For   Each   minC   As   Control   In   thispage.Controls(maxC).Controls  
                                                  If   Not   minC.ID   Is   Nothing   Then  
                                                          strControl   &=   minC.GetType.Name   &   "<br>"  
                                                  End   If  
                                          Next  
                                  End   If  
                          End   If  
                  Next  
                  Return   strControl  
          End   Function  
  这个试试!Top

8 楼wtiancai(博学,审问,慎思,明辨,笃行.)回复于 2005-09-01 11:24:34 得分 0

我试了,这样获得的只是HtmlForm<Br>HtmlForm<Br>Top

9 楼wtiancai(博学,审问,慎思,明辨,笃行.)回复于 2005-09-01 15:31:43 得分 0

protected   System.Web.UI.WebControls.TextBox   UserId;  
  protected   System.Web.UI.WebControls.Panel   Panel1;  
  protected   System.Web.UI.HtmlControls.HtmlForm   Form1;  
  protected   ProlinkControl.ProlinkTable   ProlinkTable1;  
  protected   System.Web.UI.WebControls.TextBox   Password;  
   
  private   string   strControl;  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  Response.Write(FindControl());  
  }  
   
  public   string   FindControl(){  
  for   (int   i   =   0;i   <   Page.Controls.Count;i++){  
  if   (!(Page.Controls[i].ID   ==   null)){  
  strControl   +=   Page.Controls.GetType().Name   +   "<Br>";  
  foreach(System.Web.UI.Control   control   in   Page.Controls){  
  if   (control.ID   !=   null){  
  strControl   +=   control.ID   +   "<Br>";  
  }  
  }  
  }  
  }  
  return   strControl;  
  }  
   
  输出来的是:ControlCollection<Br>Form1<Br>  
  Top

10 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-09-01 16:55:48 得分 0

public   string   FindControl(){  
  for   (int   i   =   0;i   <   Page.Controls.Count;i++){  
  if   (!(Page.Controls[i].ID   ==   null)){  
  strControl   +=   Page.Controls[i].GetType().Name   +   "<Br>";  
  foreach(System.Web.UI.Control   control   in   Page.Controls[i].Controls){  
  if   (control.ID   !=   null){  
  strControl   +=   control.ID   +   "<Br>";  
  }  
  }  
  }  
  }  
  return   strControl;  
  }  
  你有两处错误,帮你改好了!Top

相关问题

  • 如何遍历树控件?
  • 遍历控件问题
  • 遍历控件的问题.
  • 有关treeview控件的遍历问题
  • 树控件遍历问题??急!!!
  • CB6中遍历控件的方法急。。
  • 如何遍历HTML控件的元素
  • 那些控件容器可以遍历
  • 如何遍历页面所有控件?
  • java里面可以遍历控件嘛?

关键词

  • strcontrol
  • minc
  • controlcollection
  • control
  • htmlform
  • findcontrol
  • ui
  • webcontrols
  • protected
  • page

得分解答快速导航

  • 帖主:wtiancai
  • hackate

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo