Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Metodo SqlDataSourceView.OnInserting

Generato Inserting evento prima di SqlDataSource il controllo tenta un'operazione di inserimento.

Spazio dei nomi:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)
protected virtual void OnInserting(
	SqlDataSourceCommandEventArgs e
)

Generazione di un evento viene richiamato il gestore eventi mediante un delegato. Per ulteriori informazioni, vedere Utilizzo degli eventi.

OnInserting il metodo consente inoltre alle classi derivate gestire l'evento senza allegare un delegato. Questa è la tecnica più appropriata per gestire l'evento in una classe derivata.

Note per gli eredi

Quando si sottopone a override OnInserting il metodo in una classe derivata, accertarsi di chiamare OnInserting metodo della classe base in modo che i delegati registrati ricevano l'evento.

Nell'esempio di codice seguente viene illustrato come recuperare dati da Microsoft SQL Server, visualizzato in GridView controllare e utilizzare un oggetto DetailsView per controllare i dettagli di una riga selezionata in GridView e come form per inserire nuovi record.

Inizialmente, i dati visualizzati in GridView controllare e la riga selezionata di GridView viene inoltre visualizzato in DetailsView controllare. GridView e DetailsView i controlli utilizzano i controlli origine dati diversi; che è associato DetailsView ha FilterExpression e FilterParameters proprietà, che garantiscono che la riga selezionata di GridView visualizzare.

Se si sceglie generato automaticamente inserire pulsante di DetailsView controllare, DetailsView viene illustrata un'interfaccia utente diverso, utilizzata per inserire un nuovo record. L'esempio utilizza una stored procedure per inserire i record e restituisce la chiave primaria della riga inserita. Se si inserisce un record, DetailsView popola automaticamente InsertParameters raccolta con i valori delle colonne associate e dalle chiamate Insert metodo. DetailsView è in grado di dedurre i parametri corretti da qualsiasi BoundField oggetto e un parametro per TemplateField oggetto quando la sintassi di associazione dati bidirezionale ASP.NET viene utilizzata. In questo esempio, un parametro aggiuntivo viene aggiunto in OnInserting gestore eventi per gestire la chiave primaria restituita dalla stored procedure.

Infine, dopo i dati viene inserito da DetailsView controllare nel database, OnInserted il gestore eventi viene chiamato per gestire Inserted l'evento, il valore della chiave primaria della riga immessa viene visualizzata e DataBind metodo di GridView il controllo viene chiamato in modo esplicito per aggiornare i dati.


<%@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

Supportato in: 4.5, 4, 3.5, 3.0, 2.0

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.