Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

GridViewRow, classe

Mise à jour : novembre 2007

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

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

[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class GridViewRow : TableRow, 
	IDataItemContainer, INamingContainer
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class GridViewRow extends TableRow implements IDataItemContainer, 
	INamingContainer
public class GridViewRow extends TableRow implements IDataItemContainer, INamingContainer
<asp:GridViewRow />

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

DataControlRowType.DataRow

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

DataControlRowType.EmptyDataRow

Ligne vide dans le contrôle GridView. La ligne de données vide est affichée lorsque le contrôle GridView ne contient pas d'enregistrement à afficher et que le modèle GridView.EmptyDataTemplate n'a pas la valeur null.

DataControlRowType.Footer

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

DataControlRowType.Header

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

DataControlRowType.Pager

Ligne de pagineur dans le contrôle GridView.

DataControlRowType.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 est dans 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.

Remarque :

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.

Remarque :

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="C#" %>

<!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_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 xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridViewRow Example</title>
</head>
<body>
    <form id="form1" 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ément 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.

Note de sécurité :

Cet exemple comprend une zone de texte qui accepte une entrée d'utilisateur, ce qui constitue une menace potentielle pour la sécurité. Par défaut, les pages Web ASP.NET vérifient que l'entrée d'utilisateur n'inclut pas de script ni d'éléments HTML. Pour plus d'informations, consultez Vue d'ensemble des attaques de script.

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

<!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_RowUpdating (Object sender, GridViewUpdateEventArgs e)
  {

    // In this example, the GridView control will not automatically extract 
    // updated values from TemplateField column fields because they are not
    // using a two-way binding expression. So, the updated
    // 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 xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridViewRow Example</title>
</head>
<body>
    <form id="form1" 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>



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

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

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft