Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

SqlDataSource.Inserted, événement

Se produit lorsqu'une opération d'insertion est terminée.

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

public event SqlDataSourceStatusEventHandler Inserted
<asp:SqlDataSource OnInserted="SqlDataSourceStatusEventHandler" />

Gérez l'événement Inserted pour examiner les valeurs des paramètres de sortie à la fin d'une opération d'insertion. Les paramètres de sortie sont disponibles à partir de l'objet SqlDataSourceStatusEventArgs qui est associé à l'événement.

Pour plus d'informations sur la gestion des événements, consultez Consommation d'événements.

L'exemple de code suivant illustre comment récupérer des données Microsoft SQL Server afin de les afficher dans un contrôle GridView et comment utiliser un contrôle DetailsView pour consulter les détails d'une ligne sélectionnée dans GridView et en tant que formulaire pour insérer de nouveaux enregistrements.

RemarqueRemarque

Cet exemple montre comment utiliser la syntaxe déclarative pour l'accès aux données. Pour plus d'informations sur l'accès aux données à l'aide de code au lieu de balises, consultez Accès aux données dans Visual Studio.

Les données s'affichent initialement dans le contrôle GridView et la ligne sélectionnée de GridView s'affiche également dans le contrôle DetailsView. Les contrôles GridView et DetailsView utilisent des contrôles de source de données différents ; celui qui est associé à DetailsView utilise les propriétés FilterExpression et FilterParameters qui garantissent que la ligne sélectionnée dans GridView est affichée.

Si vous cliquez sur le bouton Insérer généré automatiquement du contrôle DetailsView, DetailsView affiche une interface utilisateur différente qui est utilisée pour insérer un nouvel enregistrement. L'exemple utilise une procédure stockée pour insérer des enregistrements et retourne la clé primaire de la ligne insérée. Si vous insérez un enregistrement, DetailsView remplit automatiquement la collection InsertParameters avec des valeurs des colonnes dépendantes et appelle la méthode Insert. DetailsView peut déduire les paramètres corrects de n'importe quel objet BoundField et un paramètre pour l'objet TemplateField lorsque la syntaxe de liaison de données bidirectionnelle d'ASP.NET est utilisée. Dans cet exemple, un paramètre supplémentaire est ajouté au gestionnaire d'événements OnInserting pour gérer la clé primaire retournée par la procédure stockée.

Enfin, après insertion des données dans la base de données par le contrôle DetailsView, le gestionnaire d'événements OnInserted est appelé pour gérer l'événement Inserted, la valeur de la clé primaire de la ligne insérée est affichée et la méthode DataBind du contrôle GridView est appelée explicitement pour actualiser les données.


<%@Page  Language="C#" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
 private void On_Inserting(Object sender, SqlDataSourceCommandEventArgs e) {

    SqlParameter insertedKey = new SqlParameter("@PK_New", SqlDbType.Int);
    insertedKey.Direction    = ParameterDirection.Output;        
    e.Command.Parameters.Add(insertedKey);
 }

 private void On_Inserted(Object sender, SqlDataSourceStatusEventArgs e) {
    DbCommand command = e.Command;    

    // The label displays the primary key of the recently inserted row.
    Label1.Text = command.Parameters["@PK_New"].Value.ToString();

    // Force a refresh after the data is inserted.
    GridView1.DataBind();
 }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:GridView
        id="GridView1"
        runat="server"
        AutoGenerateColumns="False"
        DataKeyNames="EmployeeID"        
        DataSourceID="SqlDataSource1">
        <columns>          
          <asp:BoundField HeaderText="First Name" DataField="FirstName" />
          <asp:BoundField HeaderText="Last Name" DataField="LastName" />
          <asp:BoundField HeaderText="Title" DataField="Title" />
          <asp:ButtonField ButtonType="Link" CommandName="Select" Text="Details..." />
        </columns>
      </asp:GridView>

      <asp:SqlDataSource
        id="SqlDataSource1"
        runat="server"
        ConnectionString="<%$ ConnectionStrings:MyNorthwind %>"
        SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
      </asp:SqlDataSource>

      <hr />

      <asp:DetailsView
        id="DetailsView1"
        runat="server"
        DataSourceID="SqlDataSource2"
        AutoGenerateRows="False"
        AutoGenerateInsertButton="True">
        <fields>
          <asp:BoundField HeaderText="First Name" DataField="FirstName" ReadOnly="False"/>
          <asp:BoundField HeaderText="Last Name" DataField="LastName" ReadOnly="False"/>
          <asp:TemplateField HeaderText="Title">
            <ItemTemplate>
              <asp:DropDownList
                id="TitleDropDownList"
                runat="server"
                selectedvalue="<%# Bind('Title') %>" >
                <asp:ListItem Selected="True">Sales Representative</asp:ListItem>
                <asp:ListItem>Sales Manager</asp:ListItem>
                <asp:ListItem>Vice President, Sales</asp:ListItem>
              </asp:DropDownList>
            </ItemTemplate>
          </asp:TemplateField>
          <asp:BoundField HeaderText="Notes" DataField="Notes" ReadOnly="False"/>
        </fields>
      </asp:DetailsView>


      <asp:SqlDataSource
        id="SqlDataSource2"
        runat="server"
        ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
        SelectCommand="SELECT * FROM Employees"
        InsertCommandType = "StoredProcedure"
        InsertCommand="sp_insertemployee"        
        OnInserting="On_Inserting"
        OnInserted ="On_Inserted"
        FilterExpression="EmployeeID={0}">
        <FilterParameters>
          <asp:ControlParameter Name="EmployeeID" ControlId="GridView1" PropertyName="SelectedValue" />
        </FilterParameters>
      </asp:SqlDataSource>

<!-- 
     -- An example sp_insertemployee stored procedure that returns
     -- the primary key of the row that was inserted in an OUT parameter.
     CREATE PROCEDURE sp_insertemployee 
        @FirstName nvarchar(10), 
        @LastName nvarchar(20) , 
        @Title nvarchar(30), 
        @Notes nvarchar(200), 
        @PK_New int OUTPUT
      AS
        INSERT INTO Employees(FirstName,LastName,Title,Notes)VALUES (@FirstName,@LastName,@Title,@Notes)
        SELECT @PK_New = @@IDENTITY
        RETURN (1)    
      GO
-->      

      <asp:Label 
        id="Label1"
        runat="server" />

    </form>
  </body>
</html>


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft