DataGridItem.ItemIndex Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the index of the DataGridItem object from the Items collection of the DataGrid control.
public:
virtual property int ItemIndex { int get(); };
public virtual int ItemIndex { get; }
member this.ItemIndex : int
Public Overridable ReadOnly Property ItemIndex As Integer
Property Value
The index of the DataGridItem from the Items collection of the DataGrid control.
Examples
The following code example demonstrates how to use the ItemIndex property to display the index of the DataGridItem object from the Items collection of the DataGrid control.
Note
The following code example uses the single-file code model and might not work correctly if copied directly into a code-behind file. This code example must be copied into an empty text file that has an .aspx extension. For more information on the Web Forms code model, see Handling and Raising Events.
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script language="C#" runat="server">
DataTable Cart;
DataView CartView;
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 < 10; 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)
{
// Need to load this data only once.
ItemsGrid.DataSource = CreateDataSource();
ItemsGrid.DataBind();
}
}
void Button_Click(Object sender, EventArgs e)
{
Label1.Text = "The DataSetIndex of each item in the DataGrid are: <br />";
foreach (DataGridItem item in ItemsGrid.Items)
{
Label1.Text += "<br />" + item.ItemIndex.ToString() +
" - " + item.Cells[1].Text;
}
}
</script>
<head runat="server">
<title>DataGridItem ItemIndex Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGridItem ItemIndex Example</h3>
<asp:DataGrid id="ItemsGrid" runat="server"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
ShowFooter="true"
AutoGenerateColumns="true">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>
<FooterStyle BackColor="#00aaaa">
</FooterStyle>
</asp:DataGrid>
<br />
<asp:Button id="Button1"
Text="Display ItemIndex of Items in DataGrid"
OnClick="Button_Click"
runat="server"/>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script language="VB" runat="server">
Dim Cart As DataTable
Dim CartView As DataView
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 9
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
' Need to 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)
Label1.Text = "The DataSetIndex of each item in the DataGrid are: <br />"
Dim item As DataGridItem
For Each item In ItemsGrid.Items
Label1.Text &= "<br />" & item.ItemIndex.ToString() & " - " & item.Cells(1).Text
Next item
End Sub 'Button_Click
</script>
<head runat="server">
<title>DataGridItem ItemIndex Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGridItem ItemIndex Example</h3>
<asp:DataGrid id="ItemsGrid" runat="server"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
ShowFooter="true"
AutoGenerateColumns="true">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>
<FooterStyle BackColor="#00aaaa">
</FooterStyle>
</asp:DataGrid>
<br />
<asp:Button id="Button1"
Text="Display ItemIndex of Items in DataGrid"
OnClick="Button_Click"
runat="server"/>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
</form>
</body>
</html>
Remarks
Use the ItemIndex property to determine the index of the DataGridItem object from the Items collection of the DataGrid control.
Note
This property applies only to data items in the DataGrid control. The ItemType property of the DataGridItem object must be set to ListItemType.Item
, ListItemType.AlternatingItem
, ListItemType.SelectedItem
, or ListItemType.EditItem
.
Applies to
See also
.NET