在ASP.NET中访问DataGrid中所有控件的值
作者:孟宪会 出自:【孟宪会之精彩世界】 发布日期:2003年5月5日 2点50分20秒
要在ASP.NET中访问DataGrid中所有控件的值,可以遍历DataGrid中每个控件:下面就是实现这一功能的aspx代码和脚本代码【VB.NET】:
' runat="server"
' runat="server"
C#
C++
VB
SQL Server
1 Year
3 Year
5 Year
10 Year
HighSchool
Graduate
Masters
PHD
后端代码: Imports System.Collections
Public Class DataGridAccessValues
Inherits System.Web.UI.Page
Protected WithEvents MyDataGrid As System.Web.UI.WebControls.DataGrid
Protected WithEvents GetValues As System.Web.UI.WebControls.Button
Protected WithEvents ResultField As System.Web.UI.WebControls.Label
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub
#End Region
Public Sub GetValues_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles GetValues.Click
Dim Result As String = ""
Dim dataGridItem As DataGridItem
For Each dataGridItem In MyDataGrid.Items
Dim Name As String = dataGridItem.Cells(0).Text
Dim AgeField As TextBox = dataGridItem.FindControl("AgeField")
Dim Age As Integer = System.Convert.ToInt64(AgeField.Text).ToString()
Dim IsGraduateField As CheckBox = dataGridItem.FindControl("IsGraduateField")
Dim IsGraduate As Boolean = IsGraduateField.Checked
Dim Skills As String = ""
Dim item As ListItem
Dim CheckBoxList1 As CheckBoxList = dataGridItem.FindControl("CheckBoxList1")
For Each item In CheckBoxList1.Items
If item.Selected Then
Skills = Skills + item.Value + ","
End If
Next
Skills = Skills.TrimEnd(",")
Dim RadioButtonList1 As RadioButtonList = dataGridItem.FindControl("RadioButtonList1")
Dim Experience As String = RadioButtonList1.SelectedItem.Text
Dim DropDownList1 As DropDownList = dataGridItem.FindControl("DropDownList1")
Dim Degree As String = DropDownList1.SelectedItem.Text
Result = Result + Name
Result = Result + "[年龄:" + Age.ToString() + "]"
Result += " "
If IsGraduate Then
Result += "已经毕业 , "
Else
Result += "没有毕业 , "
End If
Result += "技能:" + Skills + " , "
Result += "经验: " + Experience + " , 和 "
Result += "学位: " + Degree + "。"
Result += "
"
Next
ResultField.Text = Result
End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not Page.IsPostBack Then
Dim data As ArrayList = New ArrayList()
data.Add(New Person("Net_lover", 33, True))
data.Add(New Person("孟子E章", 28, True))
data.Add(New Person("精彩世界", 20, False))
data.Add(New Person("XML开发", 27, True))
MyDataGrid.DataSource = data
MyDataGrid.DataBind()
End If
End Sub
End Class
Public Class Person
Private _Name As String
Private _Age As Integer
Private _IsGraduate As Boolean
Public Sub New(ByVal Name As String, ByVal Age As Integer, ByVal IsGraduate As Boolean)
_Name = Name
_Age = Age
_IsGraduate = IsGraduate
End Sub
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal Value As String)
_Name = Value
End Set
End Property
Public Property Age() As Integer
Get
Return _Age
End Get
Set(ByVal Value As Integer)
_Age = Value
End Set
End Property
Public Property IsGraduate() As Boolean
Get
Return _IsGraduate
End Get
Set(ByVal Value As Boolean)
_IsGraduate = Value
End Set
End Property
End Class
' runat="server"
' runat="server"
C#
C++
VB
SQL Server
Less then 1 Year
Less then 3 Year
Less then 5 Year
Less then 10 Year
HighSchool
Graduate
Masters
PHD