在ASP.NET中访问DataGrid中所有控件的值

来源:互联网 发布:硬件温度检测软件 编辑:程序博客网 时间:2024/05/17 09:01

要在ASP.NET中访问DataGrid中所有控件的值,可以遍历DataGrid中每个控件

实例1(来至孟子E章):

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="DataGridAccessValues.aspx.vb" Inherits="aspxWeb.DataGridAccessValues"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD></HEAD><body><form runat="server" ID="Form1"><ItemStyle verticalalign="Top"></ItemStyle><Columns></asp:BoundColumn> <ItemTemplate> ' runat="server"></asp:TextBox> </ItemTemplate></asp:TemplateColumn> <ItemTemplate> ' runat="server"></asp:CheckBox> </ItemTemplate></asp:TemplateColumn> <ItemTemplate> C#</asp:ListItem> C++</asp:ListItem> VB</asp:ListItem> SQL Server</asp:ListItem> </asp:CheckBoxList> </ItemTemplate></asp:TemplateColumn> <ItemTemplate> 1 Year</asp:ListItem> 3 Year</asp:ListItem> 5 Year</asp:ListItem> 10 Year</asp:ListItem> </asp:RadioButtonList> </ItemTemplate></asp:TemplateColumn> <ItemTemplate> HighSchool</asp:ListItem> Graduate</asp:ListItem> Masters</asp:ListItem> PHD</asp:ListItem> </asp:DropDownList> </ItemTemplate></asp:TemplateColumn></Columns></asp:DataGrid><br></asp:Button><br></asp:Label></form></body></HTML>后端代码: Imports System.CollectionsPublic 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 窗体设计器所必需的。 <System.Diagnostics.DebuggerStepThrough()> 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 += "<br>" 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 SubEnd ClassPublic 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 PropertyEnd ClassC#例子代码: <%@ Page Language="C#" %><%@ import Namespace="System.Collections" %><html><head></head><body><form runat="server"><ItemStyle verticalalign="Top"></ItemStyle><Columns></asp:BoundColumn><ItemTemplate>' runat="server"></asp:TextBox></ItemTemplate></asp:TemplateColumn><ItemTemplate>' runat="server"></asp:CheckBox></ItemTemplate></asp:TemplateColumn><ItemTemplate>C#</asp:ListItem>C++</asp:ListItem>VB</asp:ListItem>SQL Server</asp:ListItem></asp:CheckBoxList></ItemTemplate></asp:TemplateColumn><ItemTemplate>Less then 1 Year</asp:ListItem>Less then 3 Year</asp:ListItem>Less then 5 Year</asp:ListItem>Less then 10 Year</asp:ListItem></asp:RadioButtonList></ItemTemplate></asp:TemplateColumn><ItemTemplate>HighSchool</asp:ListItem>Graduate</asp:ListItem>Masters</asp:ListItem>PHD</asp:ListItem></asp:DropDownList></ItemTemplate></asp:TemplateColumn></Columns></asp:DataGrid><br /></asp:Button><br /></asp:Label></form></body></HTML><STRONG>实例2(来至ASP.NET快速入门):</STRONG><FONT color=blue><</FONT>html<FONT color=blue>></FONT> <FONT color=blue><</FONT>script language="C#" runat="server"<FONT color=blue>></FONT> DataView CartView; Double runningTotal = 0; <FONT color=green>//Cart 是 Page 上的一个属性</FONT> DataTable Cart { get { if (Session["DGC_ShoppingCart"] == <FONT color=blue>null</FONT>) { DataTable tmpCart = new DataTable(); tmpCart.Columns.Add(new DataColumn("数量", typeof(<FONT color=blue>string</FONT>))); tmpCart.Columns.Add(new DataColumn("产品", typeof(<FONT color=blue>string</FONT>))); tmpCart.Columns.Add(new DataColumn("价格", typeof(Double))); tmpCart.Columns.Add(new DataColumn("礼品包", typeof(<FONT color=blue>bool</FONT>))); Session["DGC_ShoppingCart"] = tmpCart; <FONT color=green>// 第一次加载 -- 预填充一些数据</FONT> for (<FONT color=blue>int</FONT> i=1; i<=6; i++) { DataRow dr = tmpCart.NewRow(); dr[0] = "1"; dr[1] = "产品" + i.ToString(); dr[2] = 1.23 * (i+1); dr[3] = <FONT color=blue>false</FONT>; tmpCart.Rows.Add(dr); } return tmpCart; } else return (DataTable)Session["DGC_ShoppingCart"]; } } <FONT color=blue>void</FONT> Page_Init(Object sender, EventArgs e) { MyDataGrid.EnableViewState=<FONT color=blue>true</FONT>; } <FONT color=blue>void</FONT> Page_Load(Object sender, EventArgs e) { CartView = Cart.DefaultView; if (!IsPostBack) BindGrid(); } <FONT color=blue>void</FONT> BindGrid() { MyDataGrid.DataSource = CartView; MyDataGrid.DataBind(); } <FONT color=blue>void</FONT> btnUpdate_click(Object sender, EventArgs e) { for (<FONT color=blue>int</FONT> i=0; i<MYDATAGRID.ITEMS.COUNT; color="green" <FONT giftCheckBox='(CheckBox)_item.FindControl("chkGIft");' CheckBox qtyTextBox='(TextBox)_item.FindControl("txtQty");' TextBox _item="MyDataGrid.Items[i];" DataGridItem { i++)>// 对于数据库,我们应使用一条更新命令。</FONT> <FONT color=green>// 因为这是一个内存内数据表,所以我们只更改内存内的行。</FONT> DataRow dr = Cart.Rows[i]; dr[0] = qtyTextBox.Text; dr[3] = giftCheckBox.Checked; } BindGrid(); } Double CalcTotal (<FONT color=blue>int</FONT> count, Double price) { Double total = count * price; runningTotal += total; return(total); } <FONT color=blue></< FONT>script<FONT color=blue>></FONT><FONT color=blue><</FONT>body<FONT color=blue>></FONT> <FONT color=blue><</FONT>h3<FONT color=blue>></FONT><FONT color=blue><</FONT>font face="宋体"<FONT color=blue>></FONT>DataGrid 的自定义编辑<FONT color=blue></< FONT>font<FONT color=blue>></FONT><FONT color=blue></< FONT>h3<FONT color=blue>></FONT> <FONT color=blue><</FONT>form runat=server<FONT color=blue>></FONT><FONT color=blue><B> <?xml:namespace prefix = asp /><ASP:DataGrid id=MyDataGrid AutoGenerateColumns="false" HeaderStyle-BackColor="#aaaadd" Font-Size="8pt" Font-Name="宋体" CellPadding="4" GridLines="none" BorderWidth="1" BorderColor="black" runat="server"></B></FONT> <FONT color=blue><</FONT>Columns<FONT color=blue>></FONT> <FONT color=blue><</FONT><FONT color=blue><B>asp:TemplateColumn HeaderText="数量"<FONT color=blue>></FONT></B></FONT> <FONT color=blue><</FONT>ItemTemplate<FONT color=blue>></FONT><FONT color=blue><B> '></FONT> Width="40px" <FONT color=blue>/></FONT> <FONT color=blue></< FONT>ItemTemplate<FONT color=blue>></FONT> <FONT color=blue></< FONT><FONT color=blue><B>asp:TemplateColumn<FONT color=blue>></FONT></B></FONT> <FONT color=blue><</FONT><FONT color=blue><B>asp:BoundColumn HeaderText="产品" DataField="产品"<FONT color=blue>/></FONT></B></FONT> <FONT color=blue><</FONT><FONT color=blue><B>asp:BoundColumn HeaderText="价格" DataField="价格" DataFormatString="{0:c}" <FONT color=blue>/></FONT></B></FONT> <FONT color=blue><</FONT><FONT color=blue><B>asp:TemplateColumn HeaderText="礼品包?"<FONT color=blue>></FONT></B></FONT> <FONT color=blue><</FONT>ItemTemplate<FONT color=blue>></FONT> <FONT color=blue><</FONT>center<FONT color=blue>></FONT><FONT color=blue><B> '></FONT> <FONT color=blue>/></FONT> <FONT color=blue></< FONT>center<FONT color=blue>></FONT> <FONT color=blue></< FONT>ItemTemplate<FONT color=blue>></FONT> <FONT color=blue></< FONT><FONT color=blue><B>asp:TemplateColumn<FONT color=blue>></FONT></B></FONT> <FONT color=blue><</FONT><FONT color=blue><B>asp:TemplateColumn HeaderText="小计"<FONT color=blue>></FONT></B></FONT> <FONT color=blue><</FONT>ItemTemplate<FONT color=blue>></FONT> <FONT color=blue><</FONT>p align="right"<FONT color=blue>></FONT><FONT color=blue><B> '></FONT> <FONT color=blue>/></FONT> <FONT color=blue></< FONT>p<FONT color=blue>></FONT> <FONT color=blue></< FONT>ItemTemplate<FONT color=blue>></FONT> <FONT color=blue><</FONT>FooterTemplate<FONT color=blue>></FONT> <FONT color=blue><</FONT>p align="right"<FONT color=blue>></FONT><FONT color=blue><</FONT>b<FONT color=blue>></FONT><FONT color=blue><B> </b>'></FONT> <FONT color=blue>/></FONT> <FONT color=blue></< FONT>b<FONT color=blue>></FONT><FONT color=blue></< FONT>p<FONT color=blue>></FONT> <FONT color=blue></< FONT>FooterTemplate<FONT color=blue>></FONT> <FONT color=blue></< FONT><FONT color=blue><B>asp:TemplateColumn<FONT color=blue>></FONT></B></FONT> <FONT color=blue></< FONT>Columns<FONT color=blue>></FONT> <FONT color=blue></< FONT><FONT color=blue><B>asp:DataGrid<FONT color=blue>></FONT></B></FONT><FONT color=blue><B> </asp:LinkButton></B></FONT> <FONT color=blue></< FONT>form<FONT color=blue>></FONT><FONT color=blue></< FONT>body<FONT color=blue>></FONT><FONT color=blue></< FONT>html<FONT color=blue>></FONT>
原创粉丝点击