<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      遍歷ASP.NET頁面控件

      [摘要]“如何遍歷ASP.NET頁面所有的控件呢?“,這是在社區發問的問題中最普遍的問題之一。通常我們對這個問題的回答為:”使用Page類的controls 屬性來實現”!這個controls 屬性可以使我...
      “如何遍歷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()





      日韩精品一区二区三区高清