Condividi tramite


ObjectDataSourceView.InsertParameters Proprietà

Definizione

Ottiene l'insieme di parametri contenente i parametri utilizzati dal metodo InsertMethod.

public:
 property System::Web::UI::WebControls::ParameterCollection ^ InsertParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
public System.Web.UI.WebControls.ParameterCollection InsertParameters { get; }
member this.InsertParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property InsertParameters As ParameterCollection

Valore della proprietà

Oggetto ParameterCollection contenente i parametri utilizzati dalla proprietà InsertMethod.

Esempio

In questa sezione sono riportati due esempi di codice. Il primo esempio di codice illustra come visualizzare i dati filtrati usando un controllo con un oggetto business e un ObjectDataSourceDetailsView controllo per inserire dati. Il secondo esempio di codice fornisce un'implementazione di esempio del metodo usato nel primo esempio di Insert codice.

Nell'esempio di codice seguente viene illustrato come usare un controllo con un ObjectDataSource oggetto business e un DetailsView controllo per inserire dati. Inizialmente DetailsView viene visualizzato un nuovo NorthwindEmployee record, insieme a un pulsante Inserisci generato automaticamente. Dopo aver immesso i dati nei campi del DetailsView controllo, fare clic sul pulsante Inserisci . La InsertMethod proprietà identifica il metodo che esegue l'operazione Insert .

Se si fa clic sul pulsante Inserisci , l'operazione Insert viene eseguita usando il metodo specificato dalla InsertMethod proprietà e tutti i parametri specificati nella InsertParameters raccolta. In questo esempio di codice viene specificato un parametro nella InsertParameters raccolta che corrisponde all'ID del supervisore. Questo perché, anche se l'ID viene visualizzato nell'insieme Fields per il DetailsView controllo come BoundField oggetto, verrà passato come stringa al ObjectDataSource controllo. Aggiungendolo in modo esplicito alla InsertParameters raccolta con una Type proprietà impostata sul Int32 valore, verrà passata correttamente dal ObjectDataSource metodo come int, non come string.

Quando viene eseguita l'operazione Insert , viene chiamato il metodo identificato dalla InsertMethod proprietà . Se il metodo dell'oggetto ha una firma del metodo che include parametri, l'insieme InsertInsertParameters deve contenere un parametro con nomi che corrispondono ai parametri della firma del metodo per Insert il completamento corretto.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Import namespace="Samples.AspNet.CS" %>
<%@ 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>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          autogenerateinsertbutton="True"
          autogeneraterows="false"
          datasourceid="ObjectDataSource1"
          defaultmode="Insert" >
          <fields>
            <asp:BoundField headertext="FirstName" datafield="FirstName" />
            <asp:BoundField headertext="LastName"   datafield="LastName" />
            <asp:BoundField headertext="Title"      datafield="Title" />
            <asp:BoundField headertext="Courtesy"   datafield="Courtesy" />
            <asp:BoundField headertext="Supervisor" datafield="Supervisor" />
          </fields>
        </asp:detailsview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          insertmethod="InsertNewEmployeeWrapper"
          typename="Samples.AspNet.CS.EmployeeLogic" >
          <selectparameters>
            <asp:parameter name="anID" defaultvalue="-1" />
          </selectparameters>
          <insertparameters>
            <asp:parameter name="Supervisor" type="Int32" />
          </insertparameters>
        </asp:objectdatasource>

    </form>
  </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Import namespace="Samples.AspNet.VB" %>
<%@ 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>ObjectDataSource - VB Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          autogenerateinsertbutton="True"
          autogeneraterows="false"
          datasourceid="ObjectDataSource1"
          defaultmode="Insert" >
          <fields>
            <asp:BoundField headertext="FirstName" datafield="FirstName" />
            <asp:BoundField headertext="LastName"   datafield="LastName" />
            <asp:BoundField headertext="Title"      datafield="Title" />
            <asp:BoundField headertext="Courtesy"   datafield="Courtesy" />
            <asp:BoundField headertext="Supervisor" datafield="Supervisor" />
          </fields>
        </asp:detailsview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          insertmethod="InsertNewEmployeeWrapper"
          typename="Samples.AspNet.VB.EmployeeLogic" >
          <selectparameters>
            <asp:parameter name="anID" defaultvalue="-1" />
          </selectparameters>
          <insertparameters>
            <asp:parameter name="Supervisor" type="Int32" />
          </insertparameters>
        </asp:objectdatasource>

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

Nell'esempio di codice seguente viene fornita un'implementazione di esempio del metodo usato dall'esempio Insert di codice precedente. Il InsertNewEmployeeWrapper metodo viene aggiunto all'oggetto EmployeeLogic livello intermedio per consentire all'oggetto di funzionare più facilmente con il ObjectDataSource controllo negli scenari Web, senza una riscrittura sostanziale alla logica di business effettiva.

// This InsertNewEmployeeWrapper method is a wrapper method that enables
// the use of ObjectDataSource and InsertParameters, without
// substantially rewriting the true implementation for the NorthwindEmployee
// or the EmployeeLogic objects.
//
// The parameters to the method must be named the same as the
// DataControlFields used by the GridView or DetailsView controls.
public static void InsertNewEmployeeWrapper (string FirstName,
                                             string LastName,
                                             string Title,
                                             string Courtesy,
                                             int    Supervisor)
{
  // Build the NorthwindEmployee object and
  // call the true  implementation.
  NorthwindEmployee tempEmployee = new NorthwindEmployee();

  tempEmployee.FirstName  = FirstName;
  tempEmployee.LastName   = LastName;
  tempEmployee.Title      = Title;
  tempEmployee.Courtesy   = Courtesy;
  tempEmployee.Supervisor = Supervisor;

  // Call the true implementation.
  InsertNewEmployee(tempEmployee);
}

public static void InsertNewEmployee(NorthwindEmployee ne) {
  bool retval = ne.Save();
  if (!retval) { throw new NorthwindDataException("InsertNewEmployee failed."); }
}
' This InsertNewEmployeeWrapper method is a wrapper method that enables
' the use of ObjectDataSource and InsertParameters, without
' substantially rewriting the true implementation for the NorthwindEmployee
' or the EmployeeLogic objects.
'
' The parameters to the method must be named the same as the
' DataControlFields used by the GridView or DetailsView controls.
Public Shared Sub InsertNewEmployeeWrapper(FirstName As String, LastName As String, Title As String, Courtesy As String, Supervisor As Integer)
   ' Build the NorthwindEmployee object and
   ' call the true  implementation.
   Dim tempEmployee As New NorthwindEmployee()

   tempEmployee.FirstName = FirstName
   tempEmployee.LastName = LastName
   tempEmployee.Title = Title
   tempEmployee.Courtesy = Courtesy
   tempEmployee.Supervisor = Supervisor

   ' Call the true implementation.
   InsertNewEmployee(tempEmployee)
End Sub


Public Shared Sub InsertNewEmployee(ne As NorthwindEmployee)
   Dim retval As Boolean = ne.Save()
   If Not retval Then
      Throw New NorthwindDataException("InsertNewEmployee failed.")
   End If
End Sub

Commenti

I nomi e i tipi dei parametri contenuti nell'insieme InsertParameters devono corrispondere ai nomi e ai tipi dei parametri inclusi nel metodo specificato dalla firma della InsertMethod proprietà. Quando si utilizzano controlli associati a dati che forniscono parametri, ad esempio GridView e DetailsView, il ObjectDataSource controllo unisce automaticamente tutti i parametri specificati in modo esplicito nella raccolta con tali parametri forniti dal controllo associato ai dati. Per altre informazioni, vedere InsertMethod.

Si applica a

Vedi anche