Vue d'ensemble du contrôle serveur Web FormView
Mise à jour : novembre 2007
Le contrôle FormView est utilisé pour afficher à un moment donné un enregistrement unique provenant d'une source de données. Lorsque vous utilisez le contrôle FormView, vous créez des modèles pour afficher et modifier des valeurs liées. Les modèles contiennent des contrôles, des expressions de liaison, et de mise en forme définissant l'apparence et les fonctionnalités du formulaire. Le contrôle FormView est souvent utilisé en association avec un contrôle GridView pour les scénarios maître/détail.
Cette rubrique contient les sections suivantes :
Contexte
Exemples de code
Référence de classe
Contexte
Le contrôle FormView vous permet de travailler avec un seul enregistrement d'une source de données, de façon similaire au contrôle DetailsView. La différence entre le contrôle FormView et les contrôles DetailsView est que le contrôle DetailsView utilise une disposition tabulaire dans laquelle chacun des champs de l'enregistrement s'affiche comme une ligne. À l'inverse, le contrôle FormView ne spécifie pas de disposition prédéfinie pour afficher l'enregistrement. A la place, vous créez un modèle contenant des contrôles pour afficher chacun des champs de l'enregistrement. Le modèle contient la mise en forme, les contrôles et les expressions de liaison utilisées pour créer le formulaire.
Le contrôle FormView est utilisé en général pour mettre à jour et insérer de nouveaux enregistrements. Il est souvent utilisé dans les scénarios maître/détails dans lesquels l'enregistrement du contrôle maître détermine l'enregistrement à afficher par le contrôle FormView. Pour plus d'informations et pour obtenir un exemple, consultez Modification des données à l'aide d'un contrôle serveur Web FormView.
Le contrôle FormView dépend des fonctionnalités du contrôle de source de données pour l'exécution de tâches telles que la mise à jour, l'insertion et la suppression d'enregistrements. Le contrôle FormView n'affiche qu'un seul enregistrement de données à la fois, même si sa source de données en affiche plusieurs.
Le contrôle FormView peut paginer automatiquement un enregistrement à la fois les données dans sa source de données associée. Cela requiert que les données sont représentées par un objet qui implémente l'interface ICollection, ou que la source de données sous-jacente prend en charge la pagination. Le contrôle FormView fournit l'interface utilisateur pour qui permet de naviguer entre les enregistrements. Pour activer le comportement de pagination, affectez la valeur true à la propriété AllowPaging et spécifiez une valeur PagerTemplate.
Le contrôle FormView expose plusieurs événements que vous pouvez gérer pour exécuter votre propre code. Les événements sont déclenchés avant et après les opérations d'insertion, de mise à jour et de suppression du contrôle de source de données associé. Vous pouvez également écrire des gestionnaires pour les événements ItemCreated et ItemCommand. Pour plus d'informations, consultez Événements du contrôle serveur Web FormView.
Remarque : |
---|
Le modèle d'événement du contrôle FormView est identique à celui du contrôle GridView. Toutefois, le contrôle FormView ne prend pas en charge un événement de sélection car l'enregistrement actuel est toujours l'élément sélectionné. |
Liaison de données avec le contrôle FormView
Le contrôle FormView fournit les options de liaison de données ci-dessous :
Liaison de données à l'aide de la propriété DataSourceID, qui vous permet de lier le contrôle FormView à un contrôle de source de données. Cette méthode est recommandée car elle permet au contrôle FormView de tirer parti des fonctionnalités du contrôle de source de données et de fournir une fonctionnalité intégrée de mise à jour et de pagination.
Liaison de données à l'aide de la propriété DataSource, qui vous permet de créer des liaisons à divers objets, notamment des groupes de données ADO.NET et des lecteurs de données. Cette approche exige que vous écriviez le code pour toutes les fonctionnalités supplémentaires telles que la mise à jour et la pagination.
Lorsque vous créez une liaison à une source de données à l'aide de la propriété DataSourceID, le contrôle FormView prend en charge la liaison de données bidirectionnelle. Outre les données d'affichage du contrôle, vous pouvez activer le contrôle afin qu'il prenne en charge automatiquement les opérations d'insertion, de mise à jour et de suppression des données liées.
Pour plus d'informations, consultez Contrôles serveur Web de sources de données.
Création de l'interface utilisateur du contrôle FormView
Vous pouvez construire l'interface utilisateur du contrôle FormView en créant des modèles. Vous spécifiez des modèles différents pour les différentes actions. Vous créez un modèle ItemTemplate pour les modes affichage, insertion et modification. Vous pouvez contrôler la pagination à l'aide d'un modèle PagerTemplate ou personnaliser l'en-tête et le pied de page du contrôle FormView en utilisant respectivement HeaderTemplate et FooterTemplate. EmptyDataTemplate vous permet également de spécifier un modèle à afficher lorsque la source de données ne retourne aucune donnée. Pour plus d'informations, consultez Création de modèles pour le contrôle serveur Web FormView.
Les modèles d'éléments que vous créez pour le contrôle FormView spécifient le contenu du contrôle. Comme pour le contrôle DetailsView, vous pouvez personnaliser le format d'affichage du contrôle FormView en utilisant des propriétés de style telles que EditRowStyle, EmptyDataRowStyle, FooterStyle, HeaderStyle, InsertRowStyle, PagerStyle et les propriétés RowStyle.
L'exemple suivant présente une page ASP.NET simple qui utilise un contrôle FormView pour afficher des données.
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>FormView Example</title>
</head>
<body>
<form id="form1" >
<h3>FormView Example</h3>
<table cellspacing="10">
<tr>
<td valign="top">
<asp:FormView ID="ProductsFormView"
DataSourceID="ProductsSqlDataSource"
AllowPaging="true"
>
<HeaderStyle forecolor="white" backcolor="Blue" />
<ItemTemplate>
<table>
<tr>
<td align="right"><b>Product ID:</b></td>
<td><asp:Label id="ProductIDLabel" Text='<%# Eval("ProductID") %>' /></td>
</tr>
<tr>
<td align="right"><b>Product Name:</b></td>
<td><asp:Label id="ProductNameLabel" Text='<%# Eval("ProductName") %>' /></td>
</tr>
<tr>
<td align="right"><b>Category ID:</b></td>
<td><asp:Label id="CategoryIDLabel" Text='<%# Eval("CategoryID") %>' /></td>
</tr>
<tr>
<td align="right"><b>Quantity Per Unit:</b></td>
<td><asp:Label id="QuantityPerUnitLabel" Text='<%# Eval("QuantityPerUnit") %>' /></td>
</tr>
<tr>
<td align="right"><b>Unit Price:</b></td>
<td><asp:Label id="UnitPriceLabel" Text='<%# Eval("UnitPrice") %>' /></td>
</tr>
</table>
</ItemTemplate>
<PagerTemplate>
<table>
<tr>
<td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
<td><asp:LinkButton ID="PrevButton" CommandName="Page" CommandArgument="Prev" Text="<" RunAt="server"/></td>
<td><asp:LinkButton ID="NextButton" CommandName="Page" CommandArgument="Next" Text=">" RunAt="server"/></td>
<td><asp:LinkButton ID="LastButton" CommandName="Page" CommandArgument="Last" Text=">>" RunAt="server"/></td>
</tr>
</table>
</PagerTemplate>
</asp:FormView>
</td>
</tr>
</table>
<asp:SqlDataSource ID="ProductsSqlDataSource"
SelectCommand="SELECT * FROM [Products]"
connectionstring="<%$ ConnectionStrings:NorthwindConnection %>"
RunAt="server"/>
</form>
</body>
</html>
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>FormView Example</title>
</head>
<body>
<form id="form1" >
<h3>FormView Example</h3>
<table cellspacing="10">
<tr>
<td valign="top">
<asp:FormView ID="ProductsFormView"
DataSourceID="ProductsSqlDataSource"
AllowPaging="true"
>
<HeaderStyle forecolor="white" backcolor="Blue" />
<ItemTemplate>
<table>
<tr>
<td align="right"><b>Product ID:</b></td>
<td><asp:Label id="ProductIDLabel" Text='<%# Eval("ProductID") %>' /></td>
</tr>
<tr>
<td align="right"><b>Product Name:</b></td>
<td><asp:Label id="ProductNameLabel" Text='<%# Eval("ProductName") %>' /></td>
</tr>
<tr>
<td align="right"><b>Category ID:</b></td>
<td><asp:Label id="CategoryIDLabel" Text='<%# Eval("CategoryID") %>' /></td>
</tr>
<tr>
<td align="right"><b>Quantity Per Unit:</b></td>
<td><asp:Label id="QuantityPerUnitLabel" Text='<%# Eval("QuantityPerUnit") %>' /></td>
</tr>
<tr>
<td align="right"><b>Unit Price:</b></td>
<td><asp:Label id="UnitPriceLabel" Text='<%# Eval("UnitPrice") %>' /></td>
</tr>
</table>
</ItemTemplate>
<PagerTemplate>
<table>
<tr>
<td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
<td><asp:LinkButton ID="PrevButton" CommandName="Page" CommandArgument="Prev" Text="<" RunAt="server"/></td>
<td><asp:LinkButton ID="NextButton" CommandName="Page" CommandArgument="Next" Text=">" RunAt="server"/></td>
<td><asp:LinkButton ID="LastButton" CommandName="Page" CommandArgument="Last" Text=">>" RunAt="server"/></td>
</tr>
</table>
</PagerTemplate>
</asp:FormView>
</td>
</tr>
</table>
<asp:SqlDataSource ID="ProductsSqlDataSource"
SelectCommand="SELECT ProductID, ProductName, CategoryID, QuantityPerUnit, UnitPrice FROM [Products]"
connectionstring="<%$ ConnectionStrings:NorthwindConnection %>"
RunAt="server"/>
</form>
</body>
</html>
Retour au début
Exemples de code
Création de modèles pour le contrôle serveur Web FormView
Pagination dans un contrôle serveur Web FormView
Modification des données à l'aide d'un contrôle serveur Web FormView
Événements du contrôle serveur Web FormView
Retour au début
Référence de classe
Le tableau suivant répertorie les classes clés relatives au contrôle FormView.
Membre |
Description |
---|---|
Classe principale du contrôle. |
Retour au début
Voir aussi
Concepts
Vue d'ensemble de l'accès aux données ASP.NET
Modèles de contrôles serveur Web ASP.NET