Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

GridViewRow-Klasse

Hinweis: Diese Klasse ist neu in .NET Framework, Version 2.0.

Stellt eine einzelne Zeile in einem GridView-Steuerelement dar.

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

public class GridViewRow : TableRow, IDataItemContainer, INamingContainer
public class GridViewRow extends TableRow implements IDataItemContainer, INamingContainer
public class GridViewRow extends TableRow implements IDataItemContainer, INamingContainer

Die GridViewRow-Klasse wird verwendet, um eine einzelne Zeile in einem GridView-Steuerelement darzustellen. Jede Zeile im GridView-Steuerelement verfügt über einen festgelegten Zeilentyp. In der folgenden Tabelle sind die verschiedenen Zeilentypen aufgelistet.

Zeilentyp

Beschreibung

DataGridRowType.DataRow

Eine Datenzeile im GridView-Steuerelement.

DataGridRowType.Footer

Die Footerzeile im GridView-Steuerelement.

DataGridRowType.Header

Die Headerzeile im GridView-Steuerelement.

DataGridRowType.NullRow

Die Nullzeile im GridView-Steuerelement. Wenn keine anzeigbaren Datensätze verfügbar sind, wird die Nullzeile in einem GridView-Steuerelement angezeigt.

DataGridRowType.Pager

Eine Pagerzeile im GridView-Steuerelement.

DataGridRowType.Separator

Eine Trennzeichenzeile im GridView-Steuerelement.

Sie können den Zeilentyp eines GridViewRow-Objekts mithilfe der RowType-Eigenschaft ermitteln. Ein GridViewRow-Objekt verfügt außerdem über einen zugeordneten Zustand. Der Zustand kann eine bitweise Kombination der Werte in der folgenden Tabelle sein.

Zustandswert

Beschreibung

DataControlRowState.Alternate

Das GridViewRow-Objekt ist eine alternative Zeile im GridView-Steuerelement.

DataControlRowState.Edit

Das GridViewRow-Objekt ist im Bearbeitungsmodus.

DataControlRowState.Normal

Das GridViewRow-Objekt befindet sich in seinem normalen Zustand (Standardzustand).

DataControlRowState.Selected

Das GridViewRow-Objekt wurde ausgewählt.

Sie können den Zustand eines GridViewRow-Objekts mithilfe der RowState-Eigenschaft ermitteln.

Das GridView-Steuerelement speichert alle eigenen Datenzeilen in der Rows-Auflistung. Sie können den Index eines GridViewRow-Objekts in der Rows-Auflistung mithilfe der RowIndex-Eigenschaft ermitteln.

Sie können auf die Eigenschaften des zugrunde liegenden und an das GridViewRow-Objekt gebundenen Datenobjekts zugreifen, indem Sie die DataItem-Eigenschaft verwenden.

HinweisHinweis

Die DataItem-Eigenschaft ist nur während und nach dem RowDataBound-Ereignis eines GridView-Steuerelements verfügbar.

Um den Index des Datenobjekts in der zugrunde liegenden Datenquelle zu bestimmen, verwenden Sie die DataItemIndex-Eigenschaft.

Sie können auf die einzelnen Zellen des GridViewRow-Objekts zugreifen, indem Sie die Cells-Eigenschaft verwenden. Falls eine Zelle andere Steuerelemente enthält, können Sie mit der Controls-Auflistung der Zelle ein Steuerelement aus der Zelle abrufen. Sie können auch die FindControl-Methode der Zelle zum Suchen des Steuerelements verwenden, wenn das Steuerelement über eine ID verfügt.

Wenn Sie einen Feldwert aus einer BoundField-Feldspalte oder eine automatisch generierte Feldspalte abrufen möchten, verwenden Sie die Text-Eigenschaft der Zelle. Um einen Feldwert aus anderen Feldspaltentypen zu beziehen, in denen der Feldwert an ein Steuerelement gebunden ist, müssen Sie zunächst das Steuerelement aus der betreffenden Zelle abrufen und anschließend auf die entsprechende Eigenschaft des Steuerelement zugreifen.

HinweisHinweis

Sie können einen Datenbindungsausdruck direkt in einer TemplateField-Feldspalte verwenden, ohne den Wert an die Eigenschaft eines Steuerelements zu binden. In diesem Fall wird der Feldwert automatisch in ein DataBoundLiteralControl-Steuerelement eingefügt. Um den Feldwert anzurufen, müssen Sie zunächst das DataBoundLiteralControl-Steuerelement aus der betreffenden Zelle abrufen und anschließend die entsprechende Text-Eigenschaft verwenden.

Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz von GridViewRow finden Sie unter GridViewRow-Konstruktor.

Das folgende Beispiel veranschaulicht, wie Sie mit einem GridViewRow-Objekt einen Feldwert aus einer Zelle im GridView-Steuerelement abrufen und den Wert anschließend auf der Seite anzeigen können.


<%@ Page language="C#" %>

<script runat="server">

  void AuthorsGridView_SelectedIndexChanged(Object sender, EventArgs e)
  {
  
    // Get the selected row from the GridView control.
    GridViewRow selectRow = AuthorsGridView.SelectedRow;
    
    // Get the author's first and last name from the appropriate
    // cells in the selected row. For BoundField field columns
    // and automatically generated field columns, the Text property
    // of a cell is used to access a field value.
    String lastName = selectRow.Cells[1].Text;
    
    // In a TemplateField column where a data-binding expression
    // is used directly in the ItemTemplate, the field value
    // is automatically placed in DataBoundLiteral control.
    
    // Retrieve the DataBoundLiteral control from the cell. The
    // DataBoundLiteral control is the first control in the 
    // Controls collection.
    DataBoundLiteralControl firstNameLiteral = (DataBoundLiteralControl)selectRow.Cells[2].Controls[0];
    String firstName = firstNameLiteral.Text;
    
    // Display the name of the selected author.
    Message.Text = "You selected " + firstName + " " + lastName + ".";
    
  }

</script>

<html>
  <body>
    <form runat="server">
        
      <h3>GridViewRow Example</h3>

      <asp:label id="Message" 
        forecolor="Red"
        runat="server"/>
              
      <br/> 

      <asp:gridview id="AuthorsGridView" 
        datasourceid="AuthorsSqlDataSource" 
        autogeneratecolumns="false"
        autogenerateselectbutton="true"
        onselectedindexchanged="AuthorsGridView_SelectedIndexChanged"  
        runat="server"> 
               
        <columns>
          <asp:boundfield datafield="au_lname"
            headertext="Last Name"/>
          <asp:templatefield headertext="FirstName">
            <itemtemplate>
              <%#Eval("au_fname")%>
            </itemtemplate>
          </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_lname], [au_fname], [address], [city], [state], [zip], [contract] FROM [authors]"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>


Das folgende Beispiel veranschaulicht, wie Sie mithilfe eines GridViewRow-Objekts ein TextBox-Steuerelement abrufen können, das in der Elementbearbeitungsvorlage einer TemplateField-Feldspalte deklariert wurde. Der Wert des Textfelds wird anschließend zur Aktualisierung an ein SqlDataSource-Steuerelement in der Datenquelle übergeben.

<%@ Page language="C#" %>

<script runat="server">
  
  void AuthorsGridView_RowUpdating (Object sender, GridViewUpdateEventArgs e)
  {
    
    // The GridView control does not automatically extract updated values 
    // from TemplateField column fields. These values must be added manually 
    // to the NewValues dictionary.
    
    // Get the GridViewRow object that represents the row being edited
    // from the Rows collection of the GridView control.
    int index = AuthorsGridView.EditIndex;
    GridViewRow row = AuthorsGridView.Rows[index];
    
    // Get the controls that contain the updated values. In this
    // example, the updated values are contained in the TextBox 
    // controls declared in the EditItemTemplates of the TemplateField 
    // column fields in the GridView control.
    TextBox lastName = (TextBox)row.FindControl("LastNameTextBox");
    TextBox firstName = (TextBox)row.FindControl("FirstNameTextBox");
    
    // Add the updated values to the NewValues dictionary. Use the
    // parameter names declared in the parameterized update query 
    // string for the key names.
    e.NewValues["au_lname"] = lastName.Text;
    e.NewValues["au_fname"] = firstName.Text;    
          
  }

</script>

<html>
  <body>
    <form runat="server">
        
      <h3>GridViewRow Example</h3>

      <!-- The GridView control automatically sets the columns     -->
      <!-- specified in the datakeynames attribute as read-only    -->
      <!-- No input controls are rendered for these columns in     -->
      <!-- edit mode.                                              -->
      <asp:gridview id="AuthorsGridView" 
        datasourceid="AuthorsSqlDataSource" 
        autogeneratecolumns="false"
        autogenerateeditbutton="true"
        datakeynames="au_id"
        cellpadding="10"
        onrowupdating="AuthorsGridView_RowUpdating"      
        runat="server">
                
        <columns>
        
          <asp:boundfield datafield="au_id"
            headertext="Author ID"
            readonly="true"/>
            
          <asp:templatefield headertext="Last Name"
            itemstyle-verticalalign="Top">
            
            <itemtemplate>
              <%#Eval("au_lname")%>
            </itemtemplate>
            
            <edititemtemplate>
              <asp:textbox id="LastNameTextBox"
                text='<%#Eval("au_lname")%>'
                width="90"
                runat="server"/>
              <br/>
              <asp:requiredfieldvalidator id="LastNameRequiredValidator"
                controltovalidate="LastNameTextBox"
                display="Dynamic"
                text="Please enter a last name." 
                runat="server" />                                      
            </edititemtemplate>
            
          </asp:templatefield>
          
          <asp:templatefield headertext="First Name"
            itemstyle-verticalalign="Top">
            
            <itemtemplate>
              <%#Eval("au_fname")%>
            </itemtemplate>
            
            <edititemtemplate>
              <asp:textbox id="FirstNameTextBox"
                text='<%#Eval("au_fname")%>'
                width="90"
                runat="server"/>
              <br/>
              <asp:requiredfieldvalidator id="FirstNameRequiredValidator"
                controltovalidate="FirstNameTextBox"
                display="Dynamic"
                text="Please enter a first name."
                runat="server" />                      
            </edititemtemplate>
            
          </asp:templatefield>
          
          <asp:checkboxfield datafield="contract" 
            headertext="Contract"
            readonly="true"/>
            
        </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], [contract] FROM [authors]"             
        updatecommand="UPDATE authors SET au_lname=@au_lname, au_fname=@au_fname WHERE (authors.au_id = @au_id)" 
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>


  • AspNetHostingPermission  Für das Verwenden eines GridViewRow-Objekts in einer Hostumgebung. Zugeordneter Enumerationswert: AspNetHostingPermissionLevel.Minimal

System.Object
   System.Web.UI.Control
     System.Web.UI.WebControls.WebControl
       System.Web.UI.WebControls.TableRow
        System.Web.UI.WebControls.GridViewRow

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0
Anzeigen: