Cette documentation est archivée et n’est pas conservée.

DetailsViewRow, classe

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

Représente une ligne dans un contrôle DetailsView.

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

public class DetailsViewRow : TableRow
public class DetailsViewRow extends TableRow
public class DetailsViewRow extends TableRow

La classe DetailsViewRow est utilisée pour représenter une ligne individuelle dans un contrôle DetailsView. Chaque ligne du contrôle DetailsView possède un type de ligne désigné. Le tableau suivant répertorie les types de ligne valides pour le contrôle DetailsView.

Type de ligne

Description

DataRow

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

EmptyDataRow

Ligne de données vide dans le contrôle DetailsView. La ligne de données vide est affichée dans un contrôle DetailsView lorsqu'il n'y a aucun enregistrement à afficher.

Footer

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

Header

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

Pager

Ligne de pagineur dans le contrôle DetailsView.

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

Valeur d'état

Description

Alternate

L'objet DetailsViewRow est une ligne en alternance dans le contrôle DetailsView.

Edit

L'objet DetailsViewRow est en mode édition.

Insert

L'objet DetailsViewRow est en mode insertion.

Normal

L'objet DetailsViewRow est dans son état normal (par défaut).

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

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

Vous pouvez accéder aux cellules individuelles de l'objet DetailsViewRow à l'aide de la propriété Cells. Si une cellule contient des 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 une propriété ID spécifiée.

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é initiales d'une instance de la classe DetailsViewRow, consultez le constructeur DetailsViewRow.

L'exemple de code suivant montre comment récupérer la valeur d'un champ d'un objet DetailsViewRow.


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

<script runat="server">

  void SubmitButton_Click(Object sender, EventArgs e)
  {

    // Use the Count property to determine whether the
    // Rows collection contains any item.
    if (ItemDetailsView.Rows.Count > 0)
    {
      // Iterate through the Rows collection and display
      // the value of each field.
      MessageLabel.Text = "The row values are: <br/><br/>";

      foreach (DetailsViewRow row in ItemDetailsView.Rows)
      {
        // Use the Text property to access the value of 
        // each cell. In this example, the cells in the 
        // first column (index 0) contains the field names, 
        // while the cells in the second column (index 1)
        // contains the field value. 
        MessageLabel.Text += row.Cells[0].Text + " = " +
          row.Cells[1].Text + "<br/>";
      }
    }
    else
    {
      MessageLabel.Text = "No items.";
    }

  }
  
</script>

<html>
  <body>
    <form runat="server">
    
      <h3>DetailsViewRow Example</h3>
  
      <asp:detailsview id="ItemDetailsView"
        datasourceid="DetailsViewSource"
        allowpaging="true"
        autogeneraterows="false" 
        runat="server">
        <fields>
          <asp:boundfield datafield="CustomerID"
            headertext="Customer ID"/>
          <asp:boundfield datafield="CompanyName"
            headertext="Company Name"/>
          <asp:boundfield datafield="Address"
            headertext="Address"/>
          <asp:boundfield datafield="City"
            headertext="City"/>
          <asp:boundfield datafield="PostalCode"
            headertext="ZIP Code"/>
          <asp:boundfield datafield="Country"
            headertext="Country"/>
        </fields>
      </asp:detailsview>
      
      <br/>
      
      <asp:button id="SubmitButton" 
        text="Display Row Values"
        onclick="SubmitButton_Click"
        runat="server"/>
        
      <br/><br/>
      
      <asp:label id="MessageLabel"
        forecolor="Red"
        runat="server"/>
      
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the web.config file.                            -->
      <asp:sqldatasource id="DetailsViewSource"
        selectcommand="Select [CustomerID], [CompanyName], [Address], 
          [City], [PostalCode], [Country] From [Customers]"
        connectionstring=
          "<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>  
  
    </form>
  </body>
</html>

L'exemple de code suivant montre comment récupérer un contrôle Image de l'objet DetailsViewRow qui représente la ligne d'en-tête. Le contrôle Image est déclaré dans le modèle d'en-tête.


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

<script runat="server">

  void ItemDetailsView_ItemCreated(Object sender, EventArgs e)
  {
    // Retrieve the header row. 
    DetailsViewRow headerRow = ItemDetailsView.HeaderRow;
    
    // Retrieve the Image control from the header row.
    Image logoImage = (Image)headerRow.FindControl("LogoImage");

    // Display a custom image to indicate whether the 
    // DetailsView control is in edit or read-only mode.
    switch (ItemDetailsView.CurrentMode)
    {
      case DetailsViewMode.Edit:
        logoImage.ImageUrl = "~/Images/Edit.jpg";
        break;
      case DetailsViewMode.ReadOnly:
        logoImage.ImageUrl = "~/Images/ReadOnly.jpg";
        break;
      default:
        logoImage.ImageUrl = "~/Images/Default.jpg";
        break;
    }

  }
  
</script>

<html>
  <body>
    <form runat="server">
    
      <h3>DetailsViewRow Example</h3>
  
      <asp:detailsview id="ItemDetailsView"
        datasourceid="DetailsViewSource"
        allowpaging="true"
        autogeneraterows="false"
        autogenerateeditbutton="true"
        datakeynames="CustomerID"  
        onitemcreated="ItemDetailsView_ItemCreated"  
        runat="server">
        <fields>
          <asp:boundfield datafield="CustomerID"
            headertext="Customer ID"/>
          <asp:boundfield datafield="CompanyName"
            headertext="Company Name"/>
          <asp:boundfield datafield="Address"
            headertext="Address"/>
          <asp:boundfield datafield="City"
            headertext="City"/>
          <asp:boundfield datafield="PostalCode"
            headertext="ZIP Code"/>
          <asp:boundfield datafield="Country"
            headertext="Country"/>
        </fields>
        
        <headertemplate>
          <asp:image id="LogoImage"
            imageurl="~/Images/Default.jpg" 
            runat="server"/>
        </headertemplate>
      </asp:detailsview>
      
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the web.config file.                            -->
      <asp:sqldatasource id="DetailsViewSource"
        selectcommand="Select [CustomerID], [CompanyName], [Address], 
          [City], [PostalCode], [Country] From [Customers]"
        updatecommand="Update [Customers] Set 
          [CompanyName]=@CompanyName, [Address]=@Address, 
          [City]=@City, [PostalCode]=@PostalCode, 
          [Country]=@Country 
          Where [CustomerID]=@CustomerID"
        connectionstring=
          "<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>  
  
    </form>
  </body>
</html>

  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal

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
Afficher: