Exporter (0) Imprimer
Développer tout

GridViewRow, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

Représente une ligne individuelle dans un contrôle GridView.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

'Déclaration
Public Class GridViewRow
	Inherits TableRow
	Implements IDataItemContainer, INamingContainer
'Utilisation
Dim instance As GridViewRow

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

La classe GridViewRow est utilisée pour représenter une ligne individuelle dans un contrôle GridView. Chaque ligne du contrôle GridView possède un type de ligne désigné. Le tableau suivant affiche les différents types de lignes.

Type de ligne

Description

DataGridRowType.DataRow

Ligne de données dans le contrôle GridView.

DataGridRowType.Footer

Ligne de pied de page dans le contrôle GridView.

DataGridRowType.Header

Ligne d'en-tête dans le contrôle GridView.

DataGridRowType.NullRow

Ligne null dans le contrôle GridView. Cette ligne est affichée dans un contrôle GridView lorsqu'il n'y a pas d'enregistrements à afficher.

DataGridRowType.Pager

Ligne de pagineur dans le contrôle GridView.

DataGridRowType.Separator

Ligne de séparateur dans le contrôle GridView.

Pour déterminer le type de ligne d'un objet GridViewRow, utilisez la propriété RowType. Un état est également associé à l'objet GridViewRow. L'état peut être une combinaison d'opérations de bits des valeurs dans le tableau suivant.

Valeur d'état

Description

DataControlRowState.Alternate

L'objet GridViewRow est une ligne en alternance dans le contrôle GridView.

DataControlRowState.Edit

L'objet GridViewRow est en mode édition.

DataControlRowState.Normal

L'objet GridViewRow utilise son état normal (par défaut).

DataControlRowState.Selected

L'objet GridViewRow est sélectionné.

Pour déterminer le type de ligne d'un objet GridViewRow, utilisez la propriété RowState.

Le contrôle GridView stocke toutes ses lignes de données dans la collection Rows. Pour déterminer l'index d'un objet GridViewRow dans la collection Rows, utilisez la propriété RowIndex.

Vous pouvez accéder aux propriétés de l'objet de données sous-jacent lié à l'objet GridViewRow à l'aide de la propriété DataItem.

RemarqueRemarque

La propriété DataItem est uniquement disponible pendant et après l'événement RowDataBound d'un contrôle GridView.

Pour déterminer l'index de l'objet de données dans la source de données sous-jacente, utilisez la propriété DataItemIndex.

Vous pouvez accéder aux cellules individuelles de l'objet GridViewRow à l'aide de la propriété Cells. Si une cellule contient d'autres contrôles, vous pouvez récupérer un contrôle de celle-ci à l'aide de la collection Controls de la cellule. Vous pouvez aussi utiliser la méthode FindControl de la cellule pour rechercher le contrôle, si celui-ci possède un ID spécifié.

Pour récupérer une valeur de champ à partir d'une colonne de champ BoundField ou d'une colonne de champ générée automatiquement, utilisez la propriété Text de la cellule. Pour récupérer une valeur de champ à partir des autres types de colonnes du champ où la valeur de champ est liée à un contrôle, récupérez d'abord le contrôle de la cellule voulue, puis accédez à la propriété appropriée du contrôle.

RemarqueRemarque

Il est possible d'utiliser directement une expression de liaison de données dans une colonne de champ TemplateField sans lier la valeur à une propriété d'un contrôle. Dans ce cas, la valeur de champ est automatiquement placée dans un contrôle DataBoundLiteralControl. Pour récupérer la valeur de champ, vous devez d'abord récupérer le contrôle DataBoundLiteralControl de la cellule appropriée, puis utiliser sa propriété Text.

Pour obtenir la liste des valeurs de propriétés initiales d'une instance de GridViewRow, consultez le constructeur GridViewRow.

L'exemple suivant montre comment utiliser un objet GridViewRow pour récupérer une valeur de champ d'une cellule dans le contrôle GridView et l'afficher sur la page.


<%@ Page language="VB" %>

<script runat="server">

  Sub AuthorsGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
    
    ' Get the selected row from the GridView control.
    Dim selectRow As GridViewRow = 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.
    Dim lastName As String = 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.
    Dim firstNameLiteral As DataBoundLiteralControl = CType(selectRow.Cells(2).Controls(0), DataBoundLiteralControl)
    Dim firstName As String = firstNameLiteral.Text
    
    ' Display the name of the selected author.
    Message.Text = "You selected " & firstName & " " & lastName & "."
    
  End Sub

</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>


L'exemple suivant montre comment utiliser un objet GridViewRow pour récupérer un contrôle TextBox déclaré dans le modèle de modification d'éléments d'une colonne de champ TemplateField. Le contrôle SqlDataSource est ensuite affecté à la zone de texte pour effectuer la mise à jour dans la source de données.

<%@ Page language="VB" %>

<script runat="server">
  
  Sub AuthorsGridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
    
    ' 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.
    Dim index As Integer = AuthorsGridView.EditIndex
    Dim row As GridViewRow = 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.
    Dim lastName As TextBox = CType(row.FindControl("LastNameTextBox"), TextBox)
    Dim firstName As TextBox = CType(row.FindControl("FirstNameTextBox"), TextBox)
    
    ' 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
          
  End Sub

</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>


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

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft