1 sur 1 ont trouvé cela utile - Évaluez ce sujet

DetailsView, classe

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

Affiche les valeurs d'un enregistrement unique d'une source de données dans un tableau, où chaque ligne de données représente un champ de l'enregistrement. Le contrôle DetailsView vous permet de modifier, de supprimer et d'insérer des enregistrements.

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

[ControlValuePropertyAttribute("SelectedValue")] 
public class DetailsView : CompositeDataBoundControl, IDataItemContainer, INamingContainer, ICallbackContainer, 
	ICallbackEventHandler, IPostBackEventHandler, IPostBackContainer
/** @attribute ControlValuePropertyAttribute("SelectedValue") */ 
public class DetailsView extends CompositeDataBoundControl implements IDataItemContainer, INamingContainer, 
	ICallbackContainer, ICallbackEventHandler, IPostBackEventHandler, IPostBackContainer
ControlValuePropertyAttribute("SelectedValue") 
public class DetailsView extends CompositeDataBoundControl implements IDataItemContainer, INamingContainer, 
	ICallbackContainer, ICallbackEventHandler, IPostBackEventHandler, IPostBackContainer

Le contrôle DetailsView permet d'afficher un enregistrement unique d'une source de données dans un tableau où chaque champ de l'enregistrement s'affiche dans une ligne du tableau. Il peut être utilisé en association avec un contrôle GridView pour les scénarios maîtres/détails. Le contrôle DetailsView prend en charge les fonctionnalités suivantes :

  • Liaison aux contrôles de source de données, telle que SqlDataSource.

  • Fonctionnalités intégrées d'insertion.

  • Fonctionnalités intégrées de mise à jour et de suppression.

  • Fonctionnalités intégrées de pagination.

  • Accès par programme au modèle objet DetailsView pour définir des propriétés de manière dynamique, gérer les événements, etc.

  • Apparence personnalisable via des thèmes et des styles.

Champs de ligne

Chaque ligne de données du contrôle DetailsView est créée par la déclaration d'un contrôle de champ. Différents types de champs de ligne déterminent le comportement des lignes dans le contrôle. Les contrôles de champ dérivent de DataControlField. Le tableau suivant affiche les différents types de champs de ligne qui peuvent être utilisés.

Type de champ de colonne

Description

BoundField

Affiche la valeur d'un champ dans une source de données sous la forme de texte.

ButtonField

Affiche un bouton de commande dans le contrôle DetailsView. Cela vous permet d'afficher une ligne avec un contrôle de bouton personnalisé, par exemple un bouton Ajouter ou Supprimer.

CheckBoxField

Affiche une case à cocher dans le contrôle DetailsView. Ce type de champ de ligne est couramment utilisé pour afficher les champs avec une valeur Boolean.

CommandField

Affiche des boutons de commande intégrés pour exécuter des opérations de modification, d'insertion ou de suppression dans le contrôle DetailsView.

HyperLinkField

Affiche la valeur d'un champ dans une source de données sous la forme de lien hypertexte. Ce type de champ de ligne vous permet de lier un deuxième champ à l'URL du lien hypertexte.

ImageField

Affiche une image dans le contrôle DetailsView.

TemplateField

Affiche le contenu défini par l'utilisateur pour une ligne dans le contrôle DetailsView en fonction d'un modèle spécifié. Ce type de champ de ligne vous permet de créer un champ de ligne personnalisé.

Par défaut, la propriété AutoGenerateRows a la valeur true, qui crée génère automatiquement un objet de champ de ligne dépendant pour chaque champ d'un type pouvant être lié dans la source de données. Les types valides pouvant être liés sont String, DateTime, Decimal, Guid et l'ensemble des types primitifs. Chaque champ s'affiche ensuite dans une ligne sous la forme de texte, suivant l'ordre d'apparition de chaque champ dans la source de données.

La génération automatique des lignes permet d'afficher rapidement et facilement chaque champ dans l'enregistrement. Toutefois, pour utiliser les fonctions avancées du contrôle DetailsView, vous devez explicitement déclarer les champs de ligne à intégrer dans le contrôle DetailsView. Pour déclarer les champs de ligne, affectez d'abord la valeur false à la propriété AutoGenerateRows. Ensuite, ajoutez les balises d'ouverture et de fermeture <Fields> entre les balises d'ouverture et de fermeture du contrôle DetailsView. Enfin, répertoriez les champs de ligne que vous souhaitez inclure entre les balises d'ouverture et de fermeture <Fields>. Les champs de ligne spécifiés sont ajoutés à la collection Fields dans l'ordre répertorié. La collection Fields vous permet de gérer par programme les champs de ligne du contrôle DetailsView.

RemarqueRemarque

Les champs de ligne générés automatiquement ne sont pas ajoutés à la collection Fields.

RemarqueRemarque

Les champs de ligne déclarés explicitement peuvent être affichés dans une combinaison de champs de ligne générés automatiquement. Lorsque vous utilisez les deux types de lignes, les champs de ligne déclarés explicitement sont rendus en premier, suivis des champs de ligne générés automatiquement.

Liaison de données

Le contrôle DetailsView peut être lié à un contrôle de source de données, tel que SqlDataSource ou AccessDataSource, ou encore à n'importe quelle source de données qui implémente l'interface System.Collections.IEnumerable, par exemple System.Data.DataView, System.Collections.ArrayList et System.Collections.Hashtable. Utilisez l'une des méthodes suivantes pour lier le contrôle DetailsView au type de source de données approprié :

  • Pour lier à un contrôle de source de données, affectez à la propriété DataSourceID du contrôle DetailsView la valeur ID du contrôle de source de données. Le contrôle DetailsView se lie automatiquement au contrôle de source de données spécifié. Il s'agit de la méthode recommandée de liaison aux données.

  • Pour établir une liaison avec une source de données qui implémente l'interface System.Collections.IEnumerable, affectez par programme la source de données à la propriété DataSource du contrôle DetailsView, puis appelez la méthode DataBind.

Pour plus d'informations sur la liaison de données, consultez Liaison à des bases de données.

Security

Ce contrôle peut être utilisé pour afficher des entrées d'utilisateur qui peuvent inclure un script client malveillant. Recherchez dans toutes les informations envoyées par un client un script exécutable, des instructions SQL ou d'autre code avant de les afficher dans votre application. ASP.NET fournit une fonctionnalité de validation de demande d'entrée pour bloquer les scripts et le HTML dans les entrées d'utilisateur. Pour plus d'informations, consultez Vue d'ensemble des attaques de script. Des contrôles serveur de validation sont également fournis pour valider les entrées d'utilisateur. Pour plus d'informations, consultez Syntaxe des contrôles serveur de validation.

Opérations de données

Le contrôle DetailsView fournit des fonctionnalités intégrées qui permettent à l'utilisateur de mettre à jour, de supprimer, d'insérer et de parcourir les éléments dans le contrôle. Lorsque le contrôle DetailsView est lié à un contrôle de source de données, le contrôle DetailsView peut tirer parti des fonctionnalités du contrôle de source de données et fournir les fonctionnalités automatiques de mise à jour, de suppression, d'insertion et de pagination.

RemarqueRemarque

Le contrôle DetailsView peut fournir la prise en charge des opérations de mise à jour, de suppression, d'insertion et de pagination avec d'autres types de sources de données ; toutefois, vous devez fournir l'implémentation de ces opérations dans un gestionnaire d'événements approprié. Pour plus d'informations, consultez ItemDeleting, ItemInserting et ItemUpdating.

Le contrôle DetailsView peut ajouter automatiquement un champ de ligne CommandField avec le bouton Modifier, Supprimer ou Nouveau en affectant respectivement la valeur true aux propriétés AutoGenerateEditButton, AutoGenerateDeleteButton ou AutoGenerateInsertButton. Contrairement au bouton Supprimer (qui supprime immédiatement l'enregistrement sélectionné), lorsqu'un clic est effectué sur le bouton Modifier ou Nouveau, le contrôle DetailsView passe respectivement en mode édition ou insertion. En mode édition, le bouton Modifier est remplacé par les boutons Mettre à jour et Annuler. Les contrôles d'entrée appropriés pour le type de données du champ (tels qu'un contrôle TextBox ou CheckBox) s'affichent avec la valeur d'un champ à modifier par l'utilisateur. Cliquer sur le bouton Mettre à jour permet de mettre à jour l'enregistrement dans la source de données, alors que cliquer sur le bouton Annuler permet d'abandonner les modifications. De même, en mode insertion, le bouton Nouveau est remplacé par un bouton Insérer et un bouton Annuler ; les contrôles d'entrée vides sont affichés pour que l'utilisateur entre les valeurs du nouvel enregistrement.

RemarqueRemarque

Vous pouvez également définir manuellement les boutons de commande de mise à jour, de suppression et d'insertion boutonne dans un champ de ligne ButtonField, CommandField ou TemplateField. Le contrôle DetailsView reconnaît les boutons dont la propriété CommandName est affectée à "Modifier", "Mettre à jour", "Supprimer", "Nouveau", "Insérer" ou "Annuler" ; toutefois, vous devez fournir la fonctionnalité vous-même. Pour plus d'informations, consultez ItemDeleting, ItemInserting et ItemUpdating.

Le contrôle DetailsView fournit une fonctionnalité de pagination qui permet à l'utilisateur de naviguer vers d'autres enregistrements de la source de données. Lorsqu'ils sont activés, les contrôles de navigation entre les pages s'affichent dans une ligne de pagineur. Pour activer la pagination, attribuez la valeur true à la propriété AllowPaging. La ligne de pagineur peut être personnalisée à l'aide des propriétés PagerStyle et PagerSettings.

Personnalisation de l'interface utilisateur

Vous pouvez personnaliser l'apparence du contrôle DetailsView en définissant les propriétés de style des différentes parties du contrôle. Le tableau suivant énumère les différentes propriétés de style.

Propriété du style

Description

AlternatingRowStyle

Paramètres de style pour les lignes de données en alternance dans le contrôle DetailsView. Lorsque cette propriété est définie, les lignes de données sont affichées en alternance entre les paramètres RowStyle et les paramètres AlternatingRowStyle.

CommandRowStyle

Paramètres de style de la ligne contenant les boutons de commande intégrés dans le contrôle DetailsView.

EditRowStyle

Paramètres de style des lignes de données lorsque le contrôle DetailsView est en mode édition.

EmptyDataRowStyle

Les paramètres de style de la ligne de données vide affichée dans le contrôle DetailsView lorsque la source de données ne contient pas d'enregistrements.

FooterStyle

Les paramètres de style pour la ligne de pied de page du contrôle DetailsView.

HeaderStyle

Les paramètres de style pour la ligne d'en-tête du contrôle DetailsView.

InsertRowStyle

Paramètres de style des lignes de données lorsque le contrôle DetailsView est en mode insertion.

PagerStyle

Paramètres de style pour la ligne de pagineur dans le contrôle DetailsView.

RowStyle

Paramètres de style pour les lignes de données dans le contrôle DetailsView. Lorsque la propriété AlternatingRowStyle est également définie, les lignes de données sont affichées en alternance entre les paramètres RowStyle et les paramètres AlternatingRowStyle.

FieldHeaderStyle

Paramètres de style de la colonne d'en-tête du contrôle DetailsView.

Événements

Le contrôle DetailsView fournit plusieurs événements que vous pouvez programmer. Cela vous permet d'exécuter une routine personnalisée lorsqu'un événement se produit. Le tableau suivant répertorie les événements pris en charge par le contrôle DetailsView. Le contrôle DetailsView hérite également de ces événements de ses classes de base : DataBinding, DataBound, Disposed, Init, LoadPreRender et Render.

Événement

Description

ItemCommand

Se produit en cas de clic sur un bouton dans le contrôle DetailsView.

ItemCreated

Se produit après la création de tous les objets DetailsViewRow dans le contrôle DetailsView. Cet événement est souvent utilisé pour modifier les valeurs d'un enregistrement avant qu'il ne soit affiché.

ItemDeleted

Se produit lorsqu'un clic est effectué sur le bouton Supprimer et après que le contrôle DetailsView a supprimé l'enregistrement de la source de données. Cet événement est souvent utilisé pour vérifier les résultats de l'opération de suppression.

ItemDeleting

Se produit lorsqu'un clic est effectué sur le bouton Supprimer et avant que le contrôle DetailsView n'ait supprimé l'enregistrement de la source de données. Cet événement est souvent utilisé pour annuler l'opération de suppression.

ItemInserted

Se produit lorsqu'un clic est effectué sur un bouton Insérer et après l'insertion de l'enregistrement par le contrôle DetailsView. Cet événement est souvent utilisé pour vérifier les résultats de l'opération d'insertion.

ItemInserting

Se produit lorsqu'un clic est effectué sur un bouton Insérer et avant que le contrôle DetailsView n'insère l'enregistrement. Cet événement est souvent utilisé pour annuler l'opération d'insertion.

ItemUpdated

Se produit lorsqu'un clic est effectué sur un bouton Mettre à jour et après la mise à jour de la ligne par le contrôle DetailsView. Cet événement est souvent utilisé pour vérifier les résultats de l'opération de mise à jour.

ItemUpdating

Se produit lorsqu'un clic est effectué sur un bouton Mettre à jour et avant que le contrôle DetailsView ne mette à jour l'enregistrement. Cet événement est souvent utilisé pour annuler l'opération de mise à jour.

ModeChanged

Se produit après que le contrôle DetailsView modifie des modes (mode édition, insertion ou lecture seule). Cet événement est souvent utilisé pour exécuter une tâche lorsque le contrôle DetailsView modifie des modes.

ModeChanging

Se produit avant que le contrôle DetailsView ne modifie des modes (mode édition, insertion ou lecture seule). Cet événement est souvent utilisé pour annuler une modification du mode.

PageIndexChanged

Se produit lorsqu'un clic est effectué sur l'un des boutons du pagineur et après que le contrôle DetailsView a géré l'opération de pagination. Cet événement est couramment utilisé lorsque vous devez exécuter une tâche après que l'utilisateur a navigué vers un enregistrement différent dans le contrôle.

PageIndexChanging

Se produit lorsqu'un clic est effectué sur des boutons du pagineur et avant que le contrôle DetailsView n'ait géré l'opération de pagination. Cet événement est souvent utilisé pour annuler l'opération de pagination.

Accessibilité

Le balisage rendu par défaut pour ce contrôle peut ne pas se conformer aux normes d'accessibilité telles que les instructions de priorité 1 d'accessibilité du contenu Web (WCAG, Web Content Accessibility Guidelines). Pour plus d'informations sur la prise en charge d'accessibilité pour ce contrôle, consultez Contrôles et accessibilité ASP.NET.

RubriqueEmplacement
Comment : créer dynamiquement des modèles de contrôles serveur Web ASP.NETGénération d'applications Web ASP.NET
Comment : établir une liaison vers les données d'un contrôle basé sur des modèlesGénération d'applications Web ASP.NET
Procédure pas à pas : modification et insertion de données dans les pages Web avec le contrôle serveur Web DetailsViewGénération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèles dans Visual StudioGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : création de pages Web maître/détail dans Visual StudioGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : modification et insertion de données dans les pages Web avec le contrôle serveur Web DetailsViewGénération d'applications Web ASP.NET dans Visual Studio
Comment : créer dynamiquement des modèles de contrôles serveur Web ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèlesGénération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèles dans Visual StudioGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : création de pages Web maître/détail dans Visual StudioGénération d'applications à l'aide de Visual Web Developer

L'exemple de code suivant montre comment utiliser un contrôle DetailsView en association avec un contrôle GridView pour un scénario maître/détail simple. Il affiche les détails d'un élément sélectionné dans le contrôle GridView.

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

<html>
<body>
  <form runat="server">
    <div>
      <table>
        <tr>
          <td>
            <asp:GridView ID="GridView1" runat="server" 
              AutoGenerateColumns="False" DataSourceID="Customers"
              DataKeyNames="CustomerID">
              <Columns>
                <asp:CommandField ShowSelectButton="True" />
                <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
                <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
              </Columns>
            </asp:GridView>
          </td>
          <td valign="top">
            <asp:DetailsView ID="DetailsView1" runat="server" 
              AutoGenerateRows="True" DataKeyNames="CustomerID"
              DataSourceID="Details" Height="50px" Width="301px">
            </asp:DetailsView>
          </td>
        </tr>
      </table>
      &nbsp;&nbsp;
      <asp:SqlDataSource ID="Details" runat="server" 
        ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        SelectCommand="SELECT * FROM [Customers] WHERE ([CustomerID] = @CustomerID)">
        <SelectParameters>
          <asp:ControlParameter ControlID="GridView1" Name="CustomerID" 
            PropertyName="SelectedValue"
            Type="String" />
        </SelectParameters>
      </asp:SqlDataSource>
      <asp:SqlDataSource ID="Customers" runat="server" 
        ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        SelectCommand="SELECT [CompanyName], [ContactName], [CustomerID] FROM [Customers]">
      </asp:SqlDataSource>
    </div>
  </form>
</body>
</html>

L'exemple de code suivant montre comment utiliser le contrôle DetailsView pour ajouter, supprimer et modifier des enregistrements.


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

<script runat="server">
  void CustomerDetail_ItemInserted(object sender, 
    DetailsViewInsertedEventArgs e)
  {
    // Refresh the GridView control after a new record is inserted 
    // in the DetailsView control.
    CustomersView.DataBind();
  }

  void CustomerDetail_ItemInserting(object sender, 
    DetailsViewInsertEventArgs e)
  {
    // Iterate though the values entered by the user and HTML encode 
    // the values. This helps prevent malicious values from being 
    // stored in the data source.
    for (int i = 0; i < e.Values.Count; i++)
    {
      if (e.Values[i] != null)
      {
        e.Values[i] = Server.HtmlEncode(e.Values[i].ToString());
      }
    }
  }

  void CustomerDetail_ItemUpdated(object sender, 
    DetailsViewUpdatedEventArgs e)
  {
    // Refresh the GridView control after a new record is updated 
    // in the DetailsView control.
    CustomersView.DataBind();
  }

  void CustomerDetail_ItemUpdating(object sender, 
    DetailsViewUpdateEventArgs e)
  {
    // Iterate though the values entered by the user and HTML encode 
    // the values. This helps prevent malicious values from being 
    // stored in the data source.
    for (int i = 0; i < e.NewValues.Count; i++)
    {
      if (e.NewValues[i] != null)
      {
        e.NewValues[i] = Server.HtmlEncode(e.NewValues[i].ToString());
      }
    }
  }

  void CustomerDetail_ItemDeleted(object sender, 
    DetailsViewDeletedEventArgs e)
  {
    // Refresh the GridView control after a new record is updated 
    // in the DetailsView control.
    CustomersView.DataBind();
  }
</script>

<html>
<body>
  <form id="Form1" runat="server">
    <h3>
      DetailsView Example</h3>
    <table cellspacing="10">
      <tr>
        <td>
          <!-- Use a GridView control in combination with      -->
          <!-- a DetailsView control to display master-detail  -->
          <!-- information. When the user selects a store from -->
          <!-- GridView control, the customers//s detailed     -->
          <!-- information is displayed in the DetailsView     -->
          <!-- control.                                        -->
          <asp:GridView ID="CustomersView" DataSourceID="Customers" 
            AutoGenerateColumns="False"
            DataKeyNames="CustomerID" runat="server">
            <HeaderStyle BackColor="Blue" ForeColor="White" />
            <Columns>
              <asp:CommandField ShowSelectButton="True" />
              <asp:BoundField DataField="ContactName" 
                HeaderText="ContactName" />
              <asp:BoundField DataField="CompanyName" 
                HeaderText="CompanyName" />
            </Columns>
          </asp:GridView>
        </td>
        <td valign="top">
          <asp:DetailsView ID="CustomerDetail" 
            DataSourceID="Details" AutoGenerateRows="false"
            AutoGenerateInsertButton="true" 
            AutoGenerateEditButton="true" 
            AutoGenerateDeleteButton="true"
            EmptyDataText="No records." 
            DataKeyNames="CustomerID" GridLines="Both" 
            OnItemInserted="CustomerDetail_ItemInserted"
            OnItemInserting="CustomerDetail_ItemInserting" 
            OnItemUpdated="CustomerDetail_ItemUpdated"
            OnItemUpdating="CustomerDetail_ItemUpdating" 
            OnItemDeleted="CustomerDetail_ItemDeleted"
            runat="server">
            <HeaderStyle BackColor="Navy" ForeColor="White" />
            <RowStyle BackColor="White" />
            <AlternatingRowStyle BackColor="LightGray" />
            <EditRowStyle BackColor="LightCyan" />
            <Fields>
              <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" />
              <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
              <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" />
              <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
              <asp:BoundField DataField="Address" HeaderText="Address" />
              <asp:BoundField DataField="City" HeaderText="City" />
              <asp:BoundField DataField="Region" HeaderText="Region" />
              <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" />
              <asp:BoundField DataField="Country" HeaderText="Country" />
              <asp:BoundField DataField="Phone" HeaderText="Phone" />
              <asp:BoundField DataField="Fax" HeaderText="Fax" />
            </Fields>
          </asp:DetailsView>
        </td>
      </tr>
    </table>
    <!-- This example uses Microsoft SQL Server and connects -->
    <!-- to the Northwind sample database.                   -->
    <!-- It is strongly recommended that each data-bound     -->
    <!-- control uses a separate data source control.        -->
    <asp:SqlDataSource ID="Customers" runat="server" 
      ConnectionString=
        "<%$ ConnectionStrings:NorthwindConnectionString %>"
      SelectCommand="SELECT [CompanyName], [ContactName], [CustomerID] 
        FROM [Customers]">
    </asp:SqlDataSource>
    <!-- Add a filter to the data source control for the     -->
    <!-- DetailsView control to display the details of the   -->
    <!-- store selected in the GridView control.             -->
    <asp:SqlDataSource ID="Details" 
      ConnectionString=
        "<%$ ConnectionStrings:NorthwindConnectionString %>"
      runat="server" 
      SelectCommand="SELECT * FROM [Customers] 
        WHERE ([CustomerID] = @CustomerID)"
      DeleteCommand="DELETE FROM [Customers] 
        WHERE [CustomerID] = @CustomerID"
      InsertCommand="INSERT INTO [Customers] ([CustomerID], 
        [CompanyName], [ContactName], [ContactTitle], [Address], 
        [City], [Region], [PostalCode], [Country], [Phone], [Fax]) 
        VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle, 
        @Address, @City, @Region, @PostalCode, @Country, @Phone, @Fax)"
      UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName, 
        [ContactName] = @ContactName, [ContactTitle] = @ContactTitle, 
        [Address] = @Address, [City] = @City, [Region] = @Region, 
        [PostalCode] = @PostalCode, [Country] = @Country, 
        [Phone] = @Phone, [Fax] = @Fax 
        WHERE [CustomerID] = @CustomerID">
      <SelectParameters>
        <asp:ControlParameter ControlID="CustomersView" 
          Name="CustomerID" PropertyName="SelectedValue"
          Type="String" />
      </SelectParameters>
      <DeleteParameters>
        <asp:Parameter Name="CustomerID" Type="String" />
      </DeleteParameters>
      <UpdateParameters>
        <asp:Parameter Name="CompanyName" Type="String" />
        <asp:Parameter Name="ContactName" Type="String" />
        <asp:Parameter Name="ContactTitle" Type="String" />
        <asp:Parameter Name="Address" Type="String" />
        <asp:Parameter Name="City" Type="String" />
        <asp:Parameter Name="Region" Type="String" />
        <asp:Parameter Name="PostalCode" Type="String" />
        <asp:Parameter Name="Country" Type="String" />
        <asp:Parameter Name="Phone" Type="String" />
        <asp:Parameter Name="Fax" Type="String" />
        <asp:Parameter Name="CustomerID" Type="String" />
      </UpdateParameters>
      <InsertParameters>
        <asp:Parameter Name="CustomerID" Type="String" />
        <asp:Parameter Name="CompanyName" Type="String" />
        <asp:Parameter Name="ContactName" Type="String" />
        <asp:Parameter Name="ContactTitle" Type="String" />
        <asp:Parameter Name="Address" Type="String" />
        <asp:Parameter Name="City" Type="String" />
        <asp:Parameter Name="Region" Type="String" />
        <asp:Parameter Name="PostalCode" Type="String" />
        <asp:Parameter Name="Country" Type="String" />
        <asp:Parameter Name="Phone" Type="String" />
        <asp:Parameter Name="Fax" Type="String" />
      </InsertParameters>
    </asp:SqlDataSource>
  </form>
</body>
</html>

L'exemple de code suivant montre comment ajouter de manière déclarative des champs de ligne au contrôle DetailsView.

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

<html>
<body>
  <form id="Form1" runat="server">
    <table cellspacing="10">
      <tr>
        <td>
          <!-- Use a GridView control in combination with      -->
          <!-- a DetailsView control to display master-detail  -->
          <!-- information. When the user selects a store from -->
          <!-- GridView control, the store's detailed          -->
          <!-- information is displayed in the DetailsView     -->
          <!-- control.                                        -->
          <asp:GridView ID="GridView1" runat="server" 
            DataSourceID="Customers" AutoGenerateColumns="False" 
            DataKeyNames="CustomerID">
            <Columns>
              <asp:CommandField ShowSelectButton="True" />
              <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
              <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
            </Columns>
          </asp:GridView>
        </td>
        <td valign="top">
          <asp:DetailsView ID="DetailsView" runat="server"
            DataSourceID="Details" AutoGenerateRows="false"
            DataKeyNames="CustomerID" >
            <HeaderStyle BackColor="Navy" ForeColor="White" />
            <Fields>
              <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" 
                ReadOnly="True" />
              <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
              <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" />
              <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
              <asp:BoundField DataField="City" HeaderText="City" />
              <asp:BoundField DataField="Region" HeaderText="Region" />
              <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" />
              <asp:BoundField DataField="Country" HeaderText="Country" />
            </Fields>
          </asp:DetailsView>
        </td>
      </tr>
    </table>
    <!-- This example uses Microsoft SQL Server and connects -->
    <!-- to the Northwind sample database.                        -->
    <!-- It is strongly recommended that each data-bound     -->
    <!-- control uses a separate data source control.        -->
    <asp:SqlDataSource ID="Customers" runat="server" 
      ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
      SelectCommand="SELECT [CompanyName], [ContactName], [CustomerID] FROM [Customers]">
    </asp:SqlDataSource>
    <!-- Add a filter to the data source control for the     -->
    <!-- DetailsView control to display the details of the   -->
    <!-- store selected in the GridView control.             -->
    <asp:SqlDataSource ID="Details" runat="server" 
      ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
      SelectCommand="SELECT * FROM [Customers] WHERE ([CustomerID] = @CustomerID)">
      <SelectParameters>
        <asp:ControlParameter ControlID="GridView1" Name="CustomerID" 
          PropertyName="SelectedValue"
          Type="String" />
      </SelectParameters>
    </asp:SqlDataSource>
  </form>
</body>
</html>

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
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.