Exporter (0) Imprimer
Développer tout

FormView, classe

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

Affiche les valeurs d'un enregistrement unique provenant d'une source de données qui utilise des modèles définis par l'utilisateur. Le contrôle FormView 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 FormView : CompositeDataBoundControl, IDataItemContainer, INamingContainer, IPostBackEventHandler, 
	IPostBackContainer
/** @attribute ControlValuePropertyAttribute("SelectedValue") */ 
public class FormView extends CompositeDataBoundControl implements IDataItemContainer, INamingContainer, 
	IPostBackEventHandler, IPostBackContainer
ControlValuePropertyAttribute("SelectedValue") 
public class FormView extends CompositeDataBoundControl implements IDataItemContainer, INamingContainer, 
	IPostBackEventHandler, IPostBackContainer

Le contrôle FormView est utilisé pour afficher un enregistrement unique provenant d'une source de données. Il est semblable au contrôle DetailsView, mais il affiche des modèles définis par l'utilisateur à la place des champs de ligne. La création de vos propres modèles offre une plus grande souplesse pour contrôler la manière dont les données sont affichées. Le contrôle FormView prend en charge les fonctionnalités suivantes :

  • Liaison aux contrôles de source de données, tels que SqlDataSource et ObjectDataSource.

  • 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 FormView pour définir des propriétés de manière dynamique, gérer les événements, etc.

  • Apparence personnalisable grâce aux modèles, thèmes et styles définis par l'utilisateur.

Modèles

Pour que le contrôle FormView affiche le contenu, vous devez créer des modèles pour les différentes parties du contrôle. La plupart des modèles sont facultatifs ; toutefois, vous devez créer un modèle pour le mode dans lequel le contrôle est configuré. Par exemple, un contrôle FormView qui prend en charge l'insertion d'enregistrements doit disposer d'un modèle d'insertion d'éléments défini. Le tableau suivant énumère les différents modèles que vous pouvez créer.

Type de modèle

Description

EditItemTemplate

Définit le contenu pour la ligne de données lorsque le contrôle FormView est en mode édition. Ce modèle contient généralement des contrôles d'entrée et des boutons de commande à l'aide desquels l'utilisateur peut modifier un enregistrement existant.

EmptyDataTemplate

Définit le contenu de la ligne de données vide affichée lorsque le contrôle FormView est lié à une source de données qui ne contient pas d'enregistrements. Ce modèle contient généralement du contenu permettant d'alerter l'utilisateur que la source de données ne contient pas d'enregistrements.

FooterTemplate

Définit le contenu de la ligne de pied de page. Ce modèle contient généralement le contenu supplémentaire que vous souhaitez afficher dans la ligne de pied de page.

RemarqueRemarque

En guise d'alternative, vous pouvez simplement spécifier le texte à afficher dans la ligne de pied de page en définissant la propriété FooterText.

HeaderTemplate

Définit le contenu de la ligne d'en-tête. Ce modèle contient généralement le contenu supplémentaire que vous souhaitez afficher dans la ligne d'en-tête.

RemarqueRemarque

En guise d'alternative, vous pouvez simplement spécifier le texte à afficher dans la ligne d'en-tête en définissant la propriété HeaderText.

ItemTemplate

Définit le contenu pour la ligne de données lorsque le contrôle FormView est en mode lecture seule. Ce modèle contient généralement du contenu permettant d'afficher les valeurs d'un enregistrement existant.

InsertItemTemplate

Définit le contenu pour la ligne de données lorsque le contrôle FormView est en mode insertion. Ce modèle contient généralement des contrôles d'entrée et des boutons de commande à l'aide desquels l'utilisateur peut ajouter un enregistrement.

PagerTemplate

Définit le contenu de la ligne de pagineur affichée lorsque la fonctionnalité de pagination est activée (lorsque true est affecté à la propriété AllowPaging). Ce modèle contient généralement des contrôles à l'aide desquels l'utilisateur peut naviguer vers un autre enregistrement.

RemarqueRemarque

Le contrôle FormView dispose d'une interface utilisateur de ligne de pagineur intégrée. Vous devez créer un modèle de pagineur uniquement si vous souhaitez créer votre propre ligne de pagineur personnalisée.

Pour afficher la valeur d'un champ dans un modèle d'élément, utilisez une expression de liaison de données. Pour plus d'informations sur les expressions de liaison de données, consultez Syntaxe d'expression de liaison de données.

Les contrôles d'entrée dans le modèle de modification d'éléments et le modèle d'insertion d'éléments peuvent être liés aux champs d'une source de données en utilisant une expression de liaison bidirectionnelle. Cela permet au contrôle FormView d'extraire automatiquement les valeurs du contrôle d'entrée pour une opération de mise à jour ou d'insertion. Les expressions de liaison bidirectionnelles permettent également aux contrôles d'entrée dans un modèle de modification d'éléments d'afficher automatiquement les valeurs de champ d'origine. Pour plus d'informations sur les expressions de liaison bidirectionnelles, consultez Liaison à des bases de données.

Liaison de données

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

  • Pour lier à un contrôle de source de données, définissez la propriété DataSourceID du contrôle FormView sur la valeur ID du contrôle de source de données. Le contrôle FormView lie automatiquement au contrôle de source de données spécifié et peut tirer parti des fonctionnalités du contrôle de source de données pour exécuter les fonctionnalités d'insertion, de mise à jour, de suppression et de pagination. 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 FormView, puis appelez la méthode DataBind. Lorsque cette méthode est utilisée, le contrôle FormView ne fournit pas de fonctionnalités intégrées d'insertion, de mise à jour, de suppression et de pagination. Vous devez fournir ces fonctionnalités en utilisant l'événement approprié.

Pour plus d'informations sur la liaison de données, consultez Accès aux données avec ASP.NET.

RemarqueRemarque

Ce contrôle peut être utilisé pour afficher des entrées d'utilisateur susceptibles de contenir un script client malveillant. Vérifiez dans les informations envoyées par un client la présence d'un script exécutable, d'instructions SQL ou d'autre code avant de les afficher dans votre application. Dans la mesure du possible, il est fortement recommandé que les valeurs soient codées en HTML avant de les afficher dans ce contrôle. 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. Des contrôles serveur de validation sont également fournis pour valider les entrées d'utilisateur. Pour plus d'informations, consultez Introduction aux contrôles Validation.

Opérations de données

Le contrôle FormView fournit plusieurs 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 FormView est lié à un contrôle de source de données, le contrôle FormView 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 FormView peut fournir la prise en charge des opérations de mise à jour, d'élimination, d'insertion et de pagination avec d'autres types de sources de données ; toutefois, vous devez fournir un gestionnaire d'événements approprié avec l'implémentation pour ces opérations.

Puisque le contrôle FormView utilise des modèles, il n'offre pas de moyen de générer automatiquement des boutons de commande pour exécuter les opérations de mise à jour, de suppression ou d'insertion. Vous devez inclure manuellement ces boutons de commande dans le modèle approprié. Le contrôle FormView reconnaît certains boutons dont les propriétés CommandName ont des valeurs spécifiques. Le tableau suivant répertorie les boutons de commande que le contrôle FormView reconnaît.

Bouton

Valeur de CommandName

Description

Annuler

"Cancel"

Utilisé dans les opérations de mise à jour et d'insertion pour annuler l'opération et ignorer les valeurs entrées par l'utilisateur. Le contrôle FormView retourne ensuite au mode spécifié par la propriété DefaultMode.

Supprimer

"Delete"

Utilisé dans les opérations de suppression pour supprimer l'enregistrement affiché de la source de données. Déclenche les événements ItemDeleting et ItemDeleted.

Modifier

"Edit"

Utilisé dans les opérations de mise à jour pour mettre le contrôle FormView en mode édition. Le contenu spécifié dans la propriété EditItemTemplate est affiché pour la ligne de données.

Insert

"Insert"

Utilisé dans les opérations d'insertion pour tenter d'insérer un nouvel enregistrement dans la source de données à l'aide des valeurs fournies par l'utilisateur. Déclenche les événements ItemInserting et ItemInserted.

Nouveau

"New"

Utilisé dans les opérations d'insertion pour mettre le contrôle FormView en mode insertion. Le contenu spécifié dans la propriété InsertItemTemplate est affiché pour la ligne de données.

Page

"Page"

Utilisé dans les opérations de pagination pour représenter un bouton dans la ligne de pagineur qui exécute la pagination. Pour spécifier l'opération de pagination, affectez "Next", "Prev", "First", "Last" à la propriété CommandArgument du bouton ou de l'index de la page vers laquelle naviguer. Déclenche les événements PageIndexChanging et PageIndexChanged.

RemarqueRemarque

Ce type de bouton est généralement utilisé uniquement dans le modèle de pagineur.

Update

"Update"

Utilisé dans les opérations de mise à jour pour tenter de mettre à jour l'enregistrement affiché dans la source de données avec les valeurs fournies par l'utilisateur. Déclenche les événements ItemUpdating et ItemUpdated.

Contrairement au bouton Supprimer (qui supprime immédiatement l'enregistrement affiché), lorsqu'un clic est effectué sur le bouton Modifier ou Nouveau, le contrôle FormView passe respectivement en mode édition ou insertion. En mode édition, le contenu de la propriété EditItemTemplate est affiché pour l'élément de données actuel. En général, le modèle de modification d'éléments est défini de telle sorte que le bouton Modifier soit remplacé par un bouton Mettre à jour et un bouton 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) sont également généralement affichés 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, le contenu de la propriété InsertItemTemplate est affiché pour l'élément de données lorsque le contrôle est en mode insertion. Le modèle d'insertion d'éléments est généralement défini de sorte que le bouton Nouveau soit 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. Cliquer sur le bouton Insérer permet d'insérer l'enregistrement dans la source de données, alors que cliquer sur le bouton Annuler permet d'abandonner les modifications.

Le contrôle FormView fournit une fonctionnalité de pagination qui permet à l'utilisateur de naviguer vers d'autres enregistrements de la source de données. Lorsqu'il est activé, une ligne de pagineur est affichée dans le contrôle FormView qui contient les contrôles de navigation entre les pages. Pour activer la pagination, attribuez la valeur true à la propriété AllowPaging. Vous pouvez personnaliser la ligne de pagineur en définissant les propriétés des objets contenus dans les propriétés PagerStyle et PagerSettings. Au lieu d'utiliser l'interface utilisateur de ligne de pagineur intégrée, vous pouvez créer votre propre interface utilisateur en utilisant la propriété PagerTemplate.

Personnalisation de l'interface utilisateur

Vous pouvez personnaliser l'apparence du contrôle FormView 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

EditRowStyle

Les paramètres de style de la ligne de données lorsque le contrôle FormView est en mode édition.

EmptyDataRowStyle

Les paramètres de style de la ligne de données vide affichée dans le contrôle FormView 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 FormView.

HeaderStyle

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

InsertRowStyle

Les paramètres de style de la ligne de données lorsque le contrôle FormView est en mode insertion.

PagerStyle

Les paramètres de style de la ligne de pagineur affichée dans le contrôle FormView lorsque la fonctionnalité de pagination est activée.

RowStyle

Les paramètres de style de la ligne de données lorsque le contrôle FormView est en mode lecture seule.

Événements

Le contrôle FormView 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 FormView.

Événement

Description

ItemCommand

Se produit lorsqu'un clic est effectué sur un bouton dans un contrôle FormView. Cet événement est souvent utilisé pour exécuter une tâche lorsqu'un clic est effectué sur un bouton dans le contrôle.

ItemCreated

Se produit après la création de tous les objets FormViewRow dans le contrôle FormView. 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 (bouton dont la propriété CommandName a la valeur "Delete") et après que le contrôle FormView 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 FormView 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 (bouton dont la propriété CommandName a la valeur "Insert") et après que le contrôle FormView insère l'enregistrement. 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 FormView 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 (bouton dont la propriété CommandName a la valeur "Update") et après que le contrôle FormView met à jour l'enregistrement. 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 FormView 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 FormView modifie des modes (en mode édition, insertion ou lecture seule). Cet événement est souvent utilisé pour exécuter une tâche lorsque le contrôle FormView modifie des modes.

ModeChanging

Se produit avant que le contrôle FormView ne modifie des modes (en 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 FormView 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 FormView 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 des modèles de contrôle serveur Web ASP.NETGénération d'applications Web ASP.NET
Comment : créer des modèles de contrôle Web ASP.NET de manière déclarativeGé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
Comment : créer dynamiquement des modèles de contrôles serveur Web ASP.NETGénération d'applications Web ASP.NET
Comment : répondre aux événements de bouton dans des contrôles liés aux donnéesGénération d'applications Web ASP.NET
Procédure pas à pas : affichage des données mises en forme dans les pages Web avec le contrôle serveur Web FormViewGé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
Comment : créer des modèles de contrôle Web ASP.NET de manière déclarativeGé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
Procédure pas à pas : affichage des données mises en forme dans les pages Web avec le contrôle serveur Web FormViewGé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
Comment : répondre aux événements de bouton dans des contrôles liés aux donnéesGénération d'applications Web ASP.NET dans Visual Studio

L'exemple suivant illustre l'utilisation d'un contrôle FormView pour afficher les valeurs provenant d'un contrôle SqlDataSource.


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

<html>
  <body>
    <form runat="server">
        
      <h3>FormView Example</h3>
                       
      <asp:formview id="EmployeeFormView"
        datasourceid="EmployeeSource"
        allowpaging="true"
        datakeynames="EmployeeID" 
        runat="server">
        
        <itemtemplate>
        
          <table>
            <tr>
              <td>
                <asp:image id="EmployeeImage"
                  imageurl='<%# Eval("PhotoPath") %>'
                  alternatetext='<%# Eval("LastName") %>' 
                  runat="server"/>
              </td>
              <td>
                <h3><%# Eval("FirstName") %>&nbsp;<%# Eval("LastName") %></h3>      
                <%# Eval("Title") %>        
              </td>
            </tr>
          </table>
        
        </itemtemplate>
          
        <pagersettings position="Bottom"
          mode="NextPrevious"/> 
                  
      </asp:formview>
          
      <!-- 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="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
            
    </form>
  </body>
</html>


L'exemple suivant montre comment utiliser un contrôle FormView pour modifier des enregistrements existants.


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

<script runat="server">

  void EmployeeFormView_ItemUpdating(Object sender, FormViewUpdateEventArgs e)
  {

    // Validate the field values entered by the user. This
    // example determines whether the user left any fields
    // empty. Use the NewValues property to access the new 
    // values entered by the user.
    ArrayList emptyFieldList = ValidateFields(e.NewValues);

    if (emptyFieldList.Count > 0)
    {

      // The user left some fields empty. Display an error message.
      
      // Use the Keys property to retrieve the key field value.
      String keyValue = e.Keys["EmployeeID"].ToString();

      MessageLabel.Text = "You must enter a value for each field of record " +
        keyValue + ".<br/>The following fields are missing:<br/><br/>";

      // Display the missing fields.
      foreach (String value in emptyFieldList)
      {
        // Use the OldValues property to access the original value
        // of a field.
        MessageLabel.Text += value + " - Original Value = " + 
          e.OldValues[value].ToString() + "<br>";
      }

      // Cancel the update operation.
      e.Cancel = true;

    }
    else
    {
      // The field values passed validation. Clear the
      // error message label.
      MessageLabel.Text = "";
    }

  }

  ArrayList ValidateFields(IOrderedDictionary list)
  {
    
    // Create an ArrayList object to store the
    // names of any empty fields.
    ArrayList emptyFieldList = new ArrayList();

    // Iterate though the field values entered by
    // the user and check for an empty field. Empty
    // fields contain a null value.
    foreach (DictionaryEntry entry in list)
    {
      if (entry.Value == String.Empty)
      {
        // Add the field name to the ArrayList object.
        emptyFieldList.Add(entry.Key.ToString());
      }
    }

    return emptyFieldList;
  }

  void EmployeeFormView_ModeChanging(Object sender, FormViewModeEventArgs e)
  {
    if (e.CancelingEdit)
    {
      // The user canceled the update operation.
      // Clear the error message label.
      MessageLabel.Text = "";
    }
  }

</script>

<html>
  <body>
    <form runat="server">
        
      <h3>FormView Example</h3>
                       
      <asp:formview id="EmployeeFormView"
        datasourceid="EmployeeSource"
        allowpaging="true"
        datakeynames="EmployeeID"
        headertext="Employee Record"
        emptydatatext="No employees found."
        onitemupdating="EmployeeFormView_ItemUpdating"
        onmodechanging="EmployeeFormView_ModeChanging"  
        runat="server">
        
        <headerstyle backcolor="CornFlowerBlue"
          forecolor="White"
          font-size="14"
          horizontalalign="Center"  
          wrap="false"/>
        <rowstyle backcolor="LightBlue"
          wrap="false"/>
        <pagerstyle backcolor="CornFlowerBlue"/>

        <itemtemplate>
          <table>
            <tr>
              <td rowspan="6">
                <asp:image id="EmployeeImage"
                  imageurl='<%# Eval("PhotoPath") %>'
                  alternatetext='<%# Eval("LastName") %>' 
                  runat="server"/>
              </td>
              <td colspan="2">
                  &nbsp; 
              </td>
            </tr>
            <tr>
              <td>
                <b>Name:</b>
              </td>
              <td>
                <%# Eval("FirstName") %> <%# Eval("LastName") %>
              </td>
            </tr>
            <tr>
              <td>
                <b>Title:</b>
              </td>
              <td>
                <%# Eval("Title") %>
              </td>
            </tr>
            <tr>
              <td>
                <b>Hire Date:</b>                 
              </td>
              <td>
                <%# Eval("HireDate","{0:d}") %>
              </td>
            </tr>
            <tr height="150" valign="top">
              <td>
                <b>Address:</b>
              </td>
              <td>
                <%# Eval("Address") %><br/>
                <%# Eval("City") %> <%# Eval("Region") %>
                <%# Eval("PostalCode") %><br/>
                <%# Eval("Country") %>   
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="Edit"
                  text="Edit"
                  commandname="Edit"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </itemtemplate>
        <edititemtemplate>
          <table>
            <tr>
              <td rowspan="6">
                <asp:image id="EmployeeEditImage"
                  imageurl='<%# Eval("PhotoPath") %>'
                  alternatetext='<%# Eval("LastName") %>' 
                  runat="server"/>
              </td>
              <td colspan="2">
                  &nbsp; 
              </td>
            </tr>
            <tr>
              <td>
                <b>Name:</b>
              </td>
              <td>
                <asp:textbox id="FirstNameUpdateTextBox"
                  text='<%# Bind("FirstName") %>'
                  runat="server"/>
                <asp:textbox id="LastNameUpdateTextBox"
                  text='<%# Bind("LastName") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr>
              <td>
                <b>Title:</b>
              </td>
              <td>
                <asp:textbox id="TitleUpdateTextBox"
                  text='<%# Bind("Title") %>'
                  runat="server"/> 
              </td>
            </tr>
            <tr>
              <td>
                <b>Hire Date:</b>                 
              </td>
              <td>
                <asp:textbox id="HireDateUpdateTextBox"
                  text='<%# Bind("HireDate", "{0:d}") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr height="150" valign="top">
              <td>
                <b>Address:</b>
              </td>
              <td>
                <asp:textbox id="AddressUpdateTextBox"
                  text='<%# Bind("Address") %>'
                  runat="server"/>
                <br/>
                <asp:textbox id="CityUpdateTextBox"
                  text='<%# Bind("City") %>'
                  runat="server"/> 
                <asp:textbox id="RegionUpdateTextBox"
                  text='<%# Bind("Region") %>'
                  width="40"
                  runat="server"/>
                <asp:textbox id="PostalCodeUpdateTextBox"
                  text='<%# Bind("PostalCode") %>'
                  width="60"
                  runat="server"/>
                <br/>
                <asp:textbox id="CountryUpdateTextBox"
                  text='<%# Bind("Country") %>'
                  runat="server"/> 
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="UpdateButton"
                  text="Update"
                  commandname="Update"
                  runat="server"/>
                <asp:linkbutton id="CancelButton"
                  text="Cancel"
                  commandname="Cancel"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </edititemtemplate>
          
        <pagersettings position="Bottom"
          mode="Numeric"/> 
                  
      </asp:formview>
      
      <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="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [Address], [City], [Region], [PostalCode], [Country], [HireDate], [PhotoPath] From [Employees]"
        updatecommand="Update [Employees] Set [LastName]=@LastName, [FirstName]=@FirstName, [Title]=@Title, [Address]=@Address, [City]=@City, [Region]=@Region, [PostalCode]=@PostalCode, [Country]=@Country Where [EmployeeID]=@EmployeeID"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>
            
    </form>
  </body>
</html>


L'exemple suivant montre comment utiliser un contrôle FormView pour insérer de nouveaux enregistrements.


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

<html>
  <body>
    <form runat="server">
        
      <h3>FormView InsertItemTemplate Example</h3>
                       
      <asp:formview id="EmployeeFormView"
        datasourceid="EmployeeSource"
        allowpaging="true"
        datakeynames="EmployeeID"
        emptydatatext="No employees found."  
        runat="server">
        
        <rowstyle backcolor="LightGreen"
          wrap="false"/>
        <insertrowstyle backcolor="LightBlue"
          wrap="false"/>

        <itemtemplate>
          <table>
            <tr>
              <td rowspan="5">
                <asp:image id="CompanyLogoImage"
                  imageurl="~/Images/Logo.jpg"
                  alternatetext="Company Logo"
                  runat="server"/>
              </td>
              <td colspan="2">
                  &nbsp; 
              </td>
            </tr>
            <tr>
              <td>
                <b>Name:</b>
              </td>
              <td>
                <%# Eval("FirstName") %> <%# Eval("LastName") %>
              </td>
            </tr>
            <tr>
              <td>
                <b>Title:</b>
              </td>
              <td>
                <%# Eval("Title") %>
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="NewButton"
                  text="New"
                  commandname="New"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </itemtemplate>
        <insertitemtemplate>
          <table>
            <tr>
              <td rowspan="4">
                <asp:image id="CompanyLogoEditImage"
                  imageurl="~/Images/Logo.jpg"
                  alternatetext="Company Logo"
                  runat="server"/>
              </td>
              <td colspan="2">
                  &nbsp; 
              </td>
            </tr>
            <tr>
              <td>
                <b>Name:</b>
              </td>
              <td>
                <asp:textbox id="FirstNameInsertTextBox"
                  text='<%# Bind("FirstName") %>'
                  runat="server"/>
                <asp:textbox id="LastNameInsertTextBox"
                  text='<%# Bind("LastName") %>'
                  runat="server"/>
              </td>
            </tr>
            <tr>
              <td>
                <b>Title:</b>
              </td>
              <td>
                <asp:textbox id="TitleInsertTextBox"
                  text='<%# Bind("Title") %>'
                  runat="server"/> 
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <asp:linkbutton id="InsertButton"
                  text="Insert"
                  commandname="Insert"
                  runat="server"/>
                <asp:linkbutton id="CancelButton"
                  text="Cancel"
                  commandname="Cancel"
                  runat="server"/> 
              </td>
            </tr>
          </table>       
        </insertitemtemplate> 
                  
      </asp:formview>

      <!-- 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="EmployeeSource"
        selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
        insertcommand="Insert Into [Employees] ([LastName], [FirstName], [Title]) VALUES (@LastName, @FirstName, @Title)"
        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

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft