.NET Framework Class Library
GridViewRow..::.DataItem Property

Gets the underlying data object to which the GridViewRow object is bound.

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)
Syntax

Visual Basic (Declaration)
Public Overridable Property DataItem As Object
Visual Basic (Usage)
Dim instance As GridViewRow
Dim value As Object

value = instance.DataItem

instance.DataItem = value
C#
public virtual Object DataItem { get; set; }
Visual C++
public:
virtual property Object^ DataItem {
    Object^ get ();
    void set (Object^ value);
}
JScript
public function get DataItem () : Object
public function set DataItem (value : Object)
ASP.NET
<asp:GridViewRow DataItem="Object" />

Property Value

Type: System..::.Object
An Object that represents the underlying data object to which the GridViewRow object is bound.
Remarks

Use the DataItem property to access the properties of the underlying data object to which the GridViewRow object is bound. The DataItem property is only available during and after the RowDataBound event of a GridView control.

NoteNote:

This property applies only to data rows.

TopicLocation
How to: Set GridView Web Server Control Column Width DynamicallyBuilding ASP .NET Web Applications
How to: Set GridView Web Server Control Column Width DynamicallyBuilding ASP .NET Web Applications
How to: Set GridView Web Server Control Column Width DynamicallyBuilding ASP .NET Web Applications in Visual Studio
How to: Set GridView Web Server Control Column Width DynamicallyBuilding ASP .NET Web Applications in Visual Studio
Examples

The following example demonstrates how to use the DataItem property to retrieve a field value. The value is then used to pre-select an item in a DropDownList control displayed when a row is in edit mode.

Visual Basic
<%@ Page language="VB" %>
<%@ import namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub AuthorsGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)

    ' Check for a row in edit mode.
    If e.Row.RowState = DataControlRowState.Edit Then

      ' Preselect the DropDownList control with the state value
      ' for the current row.

      ' Retrieve the underlying data item. In this example
      ' the underlying data item is a DataRowView object. 
      Dim rowView As DataRowView = CType(e.Row.DataItem, DataRowView)

      ' Retrieve the state value for the current row. 
      Dim state As String = rowView("state").ToString()

      ' Retrieve the DropDownList control from the current row. 
      Dim list As DropDownList = CType(e.Row.FindControl("StatesList"), DropDownList)

      ' Find the ListItem object in the DropDownList control with the 
      ' state value and select the item.
      Dim item As ListItem = list.Items.FindByText(state)
      list.SelectedIndex = list.Items.IndexOf(item)

    End If

  End Sub

  Sub AuthorsGridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)

    ' Retrieve the row being edited.
    Dim row As GridViewRow = AuthorsGridView.Rows(AuthorsGridView.EditIndex)

    ' Retrieve the DropDownList control from the row.
    Dim list As DropDownList = CType(row.FindControl("StatesList"), DropDownList)

    ' Add the selected value of the DropDownList control to 
    ' the NewValues collection. The NewValues collection is
    ' passed to the data source control, which then updates the 
    ' data source.
    e.NewValues("state") = list.SelectedValue

  End Sub

</script>

<html  >
  <head runat="server">
    <title>GridViewRow DataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>GridViewRow DataItem Example</h3>

      <asp:gridview id="AuthorsGridView" 
        datasourceid="AuthorsSqlDataSource" 
        autogeneratecolumns="false"
        autogenerateeditbutton="true" 
        datakeynames="au_id"
        onrowdatabound="AuthorsGridView_RowDataBound"
        onrowupdating="AuthorsGridView_RowUpdating"   
        runat="server"> 

        <columns>
          <asp:boundfield datafield="au_lname"
            headertext="Last Name"/>
          <asp:boundfield datafield="au_fname"
            headertext="First Name"/>
          <asp:templatefield headertext="State">
            <itemtemplate>
              <%#Eval("state")%>
            </itemtemplate>
            <edititemtemplate>
              <asp:dropdownlist id="StatesList"
                datasourceid="StatesSqlDataSource"
                datatextfield="state"  
                runat="server"/>  
              <asp:sqldatasource id="StatesSqlDataSource"  
                selectcommand="SELECT Distinct [state] FROM [authors]"
                connectionstring="server=localhost;database=pubs;integrated security=SSPI"
                runat="server">
              </asp:sqldatasource>
            </edititemtemplate>            
          </asp:templatefield>
        </columns>

      </asp:gridview>

      <!-- This example uses Microsoft SQL Server and connects -->
      <!-- to the Pubs sample database.                        -->
      <asp:sqldatasource id="AuthorsSqlDataSource"  
        selectcommand="SELECT [au_id], [au_lname], [au_fname], [state] FROM [authors]"
        updatecommand="UPDATE authors SET [au_lname]=@au_lname, [au_fname]=@au_fname, [state]=@state WHERE au_id=@au_id"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>

    </form>
  </body>
</html>

C#
<%@ Page language="C#" %>
<%@ import namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void AuthorsGridView_RowDataBound (Object sender, GridViewRowEventArgs e)
  {
    // Check for a row in edit mode.
    if(e.Row.RowState == DataControlRowState.Edit)
    {
      // Preselect the DropDownList control with the state value
      // for the current row.

      // Retrieve the underlying data item. In this example
      // the underlying data item is a DataRowView object. 
      DataRowView rowView = (DataRowView)e.Row.DataItem;

      // Retrieve the state value for the current row. 
      String state = rowView["state"].ToString();

      // Retrieve the DropDownList control from the current row. 
      DropDownList list = (DropDownList)e.Row.FindControl("StatesList");

      // Find the ListItem object in the DropDownList control with the 
      // state value and select the item.
      ListItem item = list.Items.FindByText(state);
      list.SelectedIndex = list.Items.IndexOf(item);
    }
  }

  void AuthorsGridView_RowUpdating(Object sender, GridViewUpdateEventArgs e)
  {
    // Retrieve the row being edited.
    GridViewRow row = AuthorsGridView.Rows[AuthorsGridView.EditIndex];

    // Retrieve the DropDownList control from the row.
    DropDownList list = (DropDownList)row.FindControl("StatesList");

    // Add the selected value of the DropDownList control to 
    // the NewValues collection. The NewValues collection is
    // passed to the data source control, which then updates the 
    // data source.
    e.NewValues["state"] = list.SelectedValue;
  }

</script>

<html  >
  <head runat="server">
    <title>GridViewRow DataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>GridViewRow DataItem Example</h3>

      <asp:gridview id="AuthorsGridView" 
        datasourceid="AuthorsSqlDataSource" 
        autogeneratecolumns="false"
        autogenerateeditbutton="true" 
        datakeynames="au_id"
        onrowdatabound="AuthorsGridView_RowDataBound"
        onrowupdating="AuthorsGridView_RowUpdating"   
        runat="server"> 

        <columns>
          <asp:boundfield datafield="au_lname"
            headertext="Last Name"/>
          <asp:boundfield datafield="au_fname"
            headertext="First Name"/>
          <asp:templatefield headertext="State">
            <itemtemplate>
              <%#Eval("state")%>
            </itemtemplate>
            <edititemtemplate>
              <asp:dropdownlist id="StatesList"
                datasourceid="StatesSqlDataSource"
                datatextfield="state"  
                runat="server"/>  
              <asp:sqldatasource id="StatesSqlDataSource"  
                selectcommand="SELECT Distinct [state] FROM [authors]"
                connectionstring="server=localhost;database=pubs;integrated security=SSPI"
                runat="server">
              </asp:sqldatasource>
            </edititemtemplate>            
          </asp:templatefield>
        </columns>

      </asp:gridview>

      <!-- This example uses Microsoft SQL Server and connects -->
      <!-- to the Pubs sample database.                        -->
      <asp:sqldatasource id="AuthorsSqlDataSource"  
        selectcommand="SELECT [au_id], [au_lname], [au_fname], [state] FROM [authors]"
        updatecommand="UPDATE authors SET [au_lname]=@au_lname, [au_fname]=@au_fname, [state]=@state WHERE au_id=@au_id"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>

    </form>
  </body>
</html>

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0
See Also

Reference

Tags :


Page view tracker