• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

遍历ASP.NET页面控件

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网      “如何遍历ASP.NET页面所有的控件呢?“,这是在社区发问的问题中最普遍的问题之一。通常我们对这个问题的回答为:”使用Page类的controls 属性来实现”!这个controls 属性可以使我们获取一个控件的所有子控件,但是如果其中的一个子控件同样拥有自己的子控件,仅仅使用这个属性便很难获取ASP.NET页面所有的控件。所以,要根本解决这个问题,我们需要书写一些额外的方法以获取页面中的所有控件。
  
  假设页面中有若干个TextBox ,我们想遍历整个页面,然后获取所有TextBox的name和value ,并将它们显示在DataGrid中。
  
  在我们开始遍历页面之前,需要建立一个类,用于存放那些TextBox的name和value ,代码如下:
  
  Public Class UtilityObj
  
  Private _name As String
  
  Private _value As String
  
  Public Sub New(ByVal Name As String, ByVal Value As String)
  
  _name = Name
  
  _value = Value
  
  End Sub
  
  Public Property Name() As String
  
  Get
  
  Return _name
  
  End Get
  
  Set(ByVal Value As String)
  
  _name = Name
  
  End Set
  
  End Property
  
  Public Property Value() As String
  
  Get
  
  Return (_value)
  
  End Get
  
  Set(ByVal Value As String)
  
  _value = Value
  
  End Set
  
  End Property
  
  End Class
  
  
  
  这个类包含两个属性:"name" 和 "value",再定义一个公有的Arraylist(oArraylist),用于存储数据。如图:
  
  
  
  
  
  
  要实现遍历ASP.NET页面所有的控件,我们还需要定义一个主要的方法。这个方法接收一个Control类型的参数,如果这个参数为textbox,则存储它的 name 和 value。
  
  代码如下:
  
  Public Sub LoopingControls(ByVal oControl As Control)
  
  Dim frmCtrl As Control
  
  oArrayList = New ArrayList
  
  For Each frmCtrl In oControl.Controls
  
  If TypeOf frmCtrl Is TextBox Then
  
  oArrayList.Add(New UtilityObj(frmCtrl.ID, DirectCast(frmCtrl, TextBox).Text))
  
  End If
  
  If frmCtrl.HasControls Then
  
  LoopingControls(frmCtrl)
  
  End If
  
  Next
  
  End Sub
  
  
  
  我们可以使用这个方法来实现遍历ASP.NET页面所有的控件
  LoopingControls(Page)
  
  DataGrid1.DataSource = oArrayList
  
  DataGrid1.DataBind()
  
  

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网