DetailsView, classe
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 |
|---|---|
| Affiche la valeur d'un champ dans une source de données sous la forme de texte. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| Affiche une image dans le contrôle DetailsView. | |
| 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.
Remarque |
|---|
| Les champs de ligne générés automatiquement ne sont pas ajoutés à la collection Fields. |
Remarque |
|---|
| 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.
Remarque |
|---|
| 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.
Remarque |
|---|
| 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 |
|---|---|
| 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. | |
| Paramètres de style de la ligne contenant les boutons de commande intégrés dans le contrôle DetailsView. | |
| Paramètres de style des lignes de données lorsque le contrôle DetailsView est en mode édition. | |
| 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. | |
| Les paramètres de style pour la ligne de pied de page du contrôle DetailsView. | |
| Les paramètres de style pour la ligne d'en-tête du contrôle DetailsView. | |
| 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. |
| 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 |
|---|---|
| Se produit en cas de clic sur un bouton dans le contrôle DetailsView. | |
| 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é. | |
| 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. |
| 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. |
| 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. |
| 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. | |
| 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. | |
| 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. | |
| 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.
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> <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>
- AspNetHostingPermission pour exécuter le contrôle DetailsView dans un environnement hébergé. Valeur d'énumération associée : AspNetHostingPermissionLevel.Minimal.
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.
Référence
Membres DetailsViewSystem.Web.UI.WebControls, espace de noms
IsPrimitive
AccessDataSource, classe
AllowPaging
AutoGenerateRows
AutoGenerateDeleteButton
AutoGenerateEditButton
AutoGenerateInsertButton
Fields
Rows
BoundField, classe
ButtonField, classe
CommandField, classe
CheckBoxField, classe
GridView
HyperLinkField
SqlDataSource
TemplateField
Autres ressources
Utilisation de paramètres avec des contrôles de source de donnéesVue d'ensemble des contrôles de source de données
Vue d'ensemble de l'accès aux données ASP.NET
Remarque