DataGridColumnCollection.GetEnumerator Method
Returns an System.Collections.IEnumerator interface that contains all DataGridColumn derived column objects in the DataGridColumnCollection.
[Visual Basic] Public Overridable Function GetEnumerator() As IEnumerator _ Implements IEnumerable.GetEnumerator [C#] public virtual IEnumerator GetEnumerator(); [C++] public: virtual IEnumerator* GetEnumerator(); [JScript] public function GetEnumerator() : IEnumerator;
Return Value
A System.Collections.IEnumerator interface that contains all DataGridColumn derived column objects in the DataGridColumnCollection.
Implements
Remarks
Use this method to create a System.Collections.IEnumerator that can be iterated through easily to get each item in the DataGridColumnCollection.
Use the IEnumerator.Current property to get the item currently pointed to in the collection.
Use the IEnumerator.MoveNext method to move to the next item in the collection.
Use the IEnumerator.Reset method to move the enumerator to the initial position.
Note The IEnumerator.MoveNext method must be called after creating a System.Collections.IEnumerator object, or after using the IEnumerator.Reset method to move the enumerator to the first item in the collection. Otherwise, the item represented by the IEnumerator.Current property is undefined.
Example
[Visual Basic, C#] The following example demonstrates how to use the GetEnumerator method to create an System.Collections.IEnumerator interface that can be interated though to display the contents of the DataGridColumnCollection.
[Visual Basic] <%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="VB" runat="server"> Function CreateDataSource() As ICollection Dim dt As New DataTable() Dim dr As DataRow dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32))) dt.Columns.Add(New DataColumn("StringValue", GetType(String))) dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double))) Dim i As Integer For i = 0 To 8 dr = dt.NewRow() dr(0) = i dr(1) = "Item " & i.ToString() dr(2) = 1.23 *(i + 1) dt.Rows.Add(dr) Next i Dim dv As New DataView(dt) Return dv End Function 'CreateDataSource Sub Page_Load(sender As Object, e As EventArgs) If Not IsPostBack Then ' Load this data only once. ItemsGrid.DataSource = CreateDataSource() ItemsGrid.DataBind() End If End Sub 'Page_Load Sub Button_Click(sender As Object, e As EventArgs) ' Create IEnumerator for rows. Dim myEnum As IEnumerator = ItemsGrid.Columns.GetEnumerator() Dim column As DataGridColumn Label1.Text = "The header text of the items in the IEnumerator are: <br><br>" ' Iterate through IEnumerator and display its contents. While myEnum.MoveNext() column = CType(myEnum.Current, DataGridColumn) Label1.Text &= column.HeaderText & "<br>" End While End Sub 'Button_Click </script> <body> <form runat=server> <h3>DataGridColumnCollection GetEnumerator Example</h3> <b>Product List</b> <asp:DataGrid id="ItemsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" AutoGenerateColumns="false" runat="server"> <HeaderStyle BackColor="#00aaaa"> </HeaderStyle> <Columns> <asp:BoundColumn HeaderText="Item Number" DataField="IntegerValue"/> <asp:BoundColumn HeaderText="Item" DataField="StringValue"/> <asp:BoundColumn HeaderText="Price" DataField="CurrencyValue" DataFormatString="{0:c}"> <ItemStyle HorizontalAlign="right"> </ItemStyle> </asp:BoundColumn> </Columns> </asp:DataGrid> <p> <asp:Button id="Button1" Text="Create IEnumerator" OnClick="Button_Click" runat="server"/> <p> <asp:Label id="Label1" runat="server"/> </form> </body> </html> [C#] <%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="C#" runat="server"> ICollection CreateDataSource() { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(string))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); for (int i = 0; i < 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + i.ToString(); dr[2] = 1.23 * (i + 1); dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { if (!IsPostBack) { // Load this data only once. ItemsGrid.DataSource= CreateDataSource(); ItemsGrid.DataBind(); } } void Button_Click(Object sender, EventArgs e) { // Create IEnumerator for rows. IEnumerator myEnum = ItemsGrid.Columns.GetEnumerator(); DataGridColumn column; Label1.Text = "The header text of the items in the IEnumerator are: <br><br>"; // Iterate through IEnumerator and display its contents. while (myEnum.MoveNext()) { column = (DataGridColumn)myEnum.Current; Label1.Text += column.HeaderText + "<br>"; } } </script> <body> <form runat=server> <h3>DataGridColumnCollection GetEnumerator Example</h3> <b>Product List</b> <asp:DataGrid id="ItemsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" AutoGenerateColumns="false" runat="server"> <HeaderStyle BackColor="#00aaaa"> </HeaderStyle> <Columns> <asp:BoundColumn HeaderText="Item Number" DataField="IntegerValue"/> <asp:BoundColumn HeaderText="Item" DataField="StringValue"/> <asp:BoundColumn HeaderText="Price" DataField="CurrencyValue" DataFormatString="{0:c}"> <ItemStyle HorizontalAlign="right"> </ItemStyle> </asp:BoundColumn> </Columns> </asp:DataGrid> <p> <asp:Button id="Button1" Text="Create IEnumerator" OnClick="Button_Click" runat="server"/> <p> <asp:Label id="Label1" runat="server"/> </form> </body> </html>
[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 2000, Windows XP Professional, Windows Server 2003 family
See Also
DataGridColumnCollection Class | DataGridColumnCollection Members | System.Web.UI.WebControls Namespace | System.Collections.IEnumerator | DataGridColumn