DataGridColumnCollection.Item Property
Gets a DataGridColumn derived column object from the DataGridColumnCollection collection at the specified index.
[C#] In C#, this property is the indexer for the DataGridColumnCollection class.
[Visual Basic] Public Default ReadOnly Property Item( _ ByVal index As Integer _ ) As DataGridColumn [C#] public DataGridColumn this[ int index ] {get;} [C++] public: __property DataGridColumn* get_Item( int index ); [JScript] returnValue = DataGridColumnCollectionObject.Item(index); -or- returnValue = DataGridColumnCollectionObject(index);
[JScript] In JScript, you can use the default indexed properties defined by a type, but you cannot explicitly define your own. However, specifying the expando attribute on a class automatically provides a default indexed property whose type is Object and whose index type is String.
Arguments [JScript]
- index
- The index of the DataGridColumn derived object in the DataGridColumnCollection collection to retrieve.
Parameters [Visual Basic, C#, C++]
- index
- The index of the DataGridColumn derived object in the DataGridColumnCollection collection to retrieve.
Property Value
A DataGridColumn derived column object in the DataGridColumnCollection collection at the specified index.
Remarks
Use this indexer to get a DataGridColumn derived column object from the DataGridColumnCollection at the specified index using array notation.
Example
[Visual Basic, C#] The following example demonstrates how to use the indexer to get a DataGridColumn derived column object from of the DataGridColumnCollection collection. The heading text from the DataGridColumn derived column object is then displayed on the Web page for each item in the collection.
[Visual Basic] <%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script language="VB" runat="server"> Dim Cart As New DataTable() Dim CartView As DataView Sub Page_Load(sender As Object, e As EventArgs) Dim dr As DataRow If Session("ShoppingCart") Is Nothing Then Cart.Columns.Add(New DataColumn("Qty", GetType(String))) Cart.Columns.Add(New DataColumn("Item", GetType(String))) Cart.Columns.Add(New DataColumn("Price", GetType(String))) Session("ShoppingCart") = Cart ' Create sample data. Dim i As Integer For i = 1 To 4 dr = Cart.NewRow() If i Mod 2 <> 0 Then dr(0) = "2" Else dr(0) = "1" End If dr(1) = "Item " & i.ToString() dr(2) =(1.23 *(i + 1)).ToString() Cart.Rows.Add(dr) Next i Else Cart = CType(Session("ShoppingCart"), DataTable) End If CartView = New DataView(Cart) CartView.Sort = "Item" If Not IsPostBack Then BindGrid() End If End Sub 'Page_Load Sub MyDataGrid_Edit(sender As Object, e As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = e.Item.ItemIndex BindGrid() End Sub 'MyDataGrid_Edit Sub MyDataGrid_Cancel(sender As Object, e As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = - 1 BindGrid() End Sub 'MyDataGrid_Cancel Sub MyDataGrid_Update(sender As Object, e As DataGridCommandEventArgs) ' For bound columns, the edited value is stored in a TextBox. ' The TextBox is the 0th element in the column's cell. Dim qtyText As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox) Dim priceText As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox) Dim item As String = e.Item.Cells(1).Text Dim qty As String = qtyText.Text Dim price As String = priceText.Text Dim dr As DataRow ' With a database, use an update command to update the data. Because ' the data source in this example is an in-memory DataTable, delete the ' old row and replace it with a new one. ' Remove old entry. CartView.RowFilter = "Item='" & item & "'" If CartView.Count > 0 Then CartView.Delete(0) End If CartView.RowFilter = "" ' Add new entry. dr = Cart.NewRow() dr(0) = qty dr(1) = item dr(2) = price Cart.Rows.Add(dr) MyDataGrid.EditItemIndex = - 1 BindGrid() End Sub 'MyDataGrid_Update Sub Button_Click(sender As Object, e As EventArgs) Label1.Text = "Header Text for each column: <br><br>" Dim i As Integer For i = 0 To MyDataGrid.Columns.Count - 1 Label1.Text &= "<br>" & MyDataGrid.Columns(i).HeaderText Next i End Sub 'Button_Click Sub BindGrid() MyDataGrid.DataSource = CartView MyDataGrid.DataBind() End Sub 'BindGrid </script> <body style="font: 10pt verdana"> <form runat="server"> <asp:DataGrid id="MyDataGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_Update" AutoGenerateColumns="false"> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false" HeaderText="Edit Command Column" HeaderStyle-Wrap="false"/> <asp:BoundColumn HeaderText="Item" ReadOnly="true" DataField="Item"/> <asp:BoundColumn HeaderText="Quantity" DataField="Qty"/> <asp:BoundColumn HeaderText="Price" DataField="Price"/> </Columns> </asp:DataGrid> <br><br> <asp:Button id="Button1" Text="Display Header Text for Columns" OnClick="Button_Click" runat="server"/> <br><br> <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"> DataTable Cart = new DataTable(); DataView CartView; void Page_Load(Object sender, EventArgs e) { DataRow dr; if (Session["ShoppingCart"] == null) { Cart.Columns.Add(new DataColumn("Qty", typeof(String))); Cart.Columns.Add(new DataColumn("Item", typeof(String))); Cart.Columns.Add(new DataColumn("Price", typeof(String))); Session["ShoppingCart"] = Cart; // Create sample data. for (int i = 1; i <= 4; i++) { dr = Cart.NewRow(); if (i % 2 != 0) dr[0] = "2"; else dr[0] = "1"; dr[1] = "Item " + i.ToString(); dr[2] = (1.23 * (i + 1)).ToString(); Cart.Rows.Add(dr); } } else Cart = (DataTable)Session["ShoppingCart"]; CartView = new DataView(Cart); CartView.Sort="Item"; if (!IsPostBack) BindGrid(); } void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e) { MyDataGrid.EditItemIndex = e.Item.ItemIndex; BindGrid(); } void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e) { MyDataGrid.EditItemIndex = -1; BindGrid(); } void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e) { // For bound columns, the edited value is stored in a TextBox. // The TextBox is the 0th element in the column's cell. TextBox qtyText = (TextBox)e.Item.Cells[2].Controls[0]; TextBox priceText = (TextBox)e.Item.Cells[3].Controls[0]; String item = e.Item.Cells[1].Text; String qty = qtyText.Text; String price = priceText.Text; DataRow dr; // With a database, use an update command to update the data. Because // the data source in this example is an in-memory DataTable, delete the // old row and replace it with a new one. // Remove old entry. CartView.RowFilter = "Item='" + item + "'"; if (CartView.Count > 0) CartView.Delete(0); CartView.RowFilter = ""; // Add new entry. dr = Cart.NewRow(); dr[0] = qty; dr[1] = item; dr[2] = price; Cart.Rows.Add(dr); MyDataGrid.EditItemIndex = -1; BindGrid(); } void Button_Click(Object sender, EventArgs e) { Label1.Text = "Header Text for each column: <br>"; for (int i = 0; i < MyDataGrid.Columns.Count; i++) { Label1.Text += "<br>" + MyDataGrid.Columns[i].HeaderText; } } void BindGrid() { MyDataGrid.DataSource = CartView; MyDataGrid.DataBind(); } </script> <body style="font: 10pt verdana"> <form runat="server"> <asp:DataGrid id="MyDataGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_Update" AutoGenerateColumns="false"> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false" HeaderText="Edit Command Column" HeaderStyle-Wrap="false"/> <asp:BoundColumn HeaderText="Item" ReadOnly="true" DataField="Item"/> <asp:BoundColumn HeaderText="Quantity" DataField="Qty"/> <asp:BoundColumn HeaderText="Price" DataField="Price"/> </Columns> </asp:DataGrid> <br><br> <asp:Button id="Button1" Text="Display Header Text for Columns" OnClick="Button_Click" runat="server"/> <br><br> <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 | DataGridColumn | BoundColumn | ButtonColumn | EditCommandColumn | HyperLinkColumn | TemplateColumn