ObjectDataSourceView.InsertParameters ObjectDataSourceView.InsertParameters ObjectDataSourceView.InsertParameters ObjectDataSourceView.InsertParameters Property

Definizione

Ottiene l'insieme di parametri contenente i parametri utilizzati dal metodo InsertMethod.Gets the parameters collection that contains the parameters that are used by the InsertMethod method.

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.A ParameterCollection that contains the parameters used by the InsertMethod property.

Esempi

In questa sezione sono riportati due esempi di codice.This section contains two code examples. Nel primo esempio di codice viene illustrato come visualizzare i dati filtrati utilizzando un ObjectDataSource controllo con un oggetto business e un DetailsView controllo per inserire i dati.The first code example demonstrates how to display filtered data using an ObjectDataSource control with a business object and a DetailsView control to insert data. Il secondo esempio di codice fornisce un'implementazione di esempio Insert del metodo usato nel primo esempio di codice.The second code example provides an example implementation of the Insert method that is used in the first code example.

Nell'esempio di codice riportato di seguito viene illustrato ObjectDataSource come utilizzare un controllo con un oggetto DetailsView business e un controllo per inserire i dati.The following code example demonstrates how to use an ObjectDataSource control with a business object and a DetailsView control to insert data. Inizialmente viene visualizzato un nuovo NorthwindEmployee record, insieme a un pulsante di inserimento generato automaticamente. DetailsViewThe DetailsView initially displays a new NorthwindEmployee record, along with an automatically generated Insert button. Dopo aver immesso i dati nei campi del DetailsView controllo, fare clic sul pulsante Inserisci .After you enter data into the fields of the DetailsView control, click the Insert button. La InsertMethod proprietà identifica il metodo che esegue Insert l'operazione.The InsertMethod property identifies which method performs the Insert operation.

Se si fa clic sul pulsante Inserisci , Insert l'operazione viene eseguita utilizzando il metodo specificato dalla InsertMethod proprietà e InsertParameters tutti i parametri specificati nella raccolta.If you click the Insert button, the Insert operation is performed using the method that is specified by the InsertMethod property and any parameters that are specified in the InsertParameters collection. In questo esempio di codice viene specificato un parametro nella InsertParameters raccolta che corrisponde all'ID del supervisore.In this code example, one parameter is specified in the InsertParameters collection that corresponds to the supervisor's ID. Questo è dovuto al fatto che, anche se l'ID Fields viene visualizzato nella DetailsView raccolta per il BoundField controllo come oggetto, viene passato come stringa al ObjectDataSource controllo.This is because even though the ID is displayed in the Fields collection for the DetailsView control as a BoundField object, it will be passed as a string to the ObjectDataSource control. Aggiungendola in modo esplicito alla InsertParameters raccolta con una Type proprietà impostata Int32 sul valore ObjectDataSource , questa viene passata intcorrettamente da al metodo come, non come string.By adding it explicitly to the InsertParameters collection with a Type property that is set to the Int32 value, it will be passed correctly by the ObjectDataSource to the method as an int, not as string.

Quando viene Insert eseguita l'operazione, viene chiamato il metodo identificato InsertMethod dalla proprietà.When the Insert operation is performed, the method that is identified by the InsertMethod property is called. Se il Insert metodo dell'oggetto ha una firma del metodo che include parametri, la InsertParameters raccolta deve contenere un parametro con nomi corrispondenti ai parametri della firma del metodo per Insert il completamento corretto di.If the Insert method of the object has a method signature that includes parameters, the InsertParameters collection must contain a parameter with names that match the method signature parameters for the Insert to complete successfully.

<%@ 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 riportato di seguito viene fornita un' Insert implementazione di esempio del metodo utilizzato nell'esempio di codice precedente.The following code example provides an example implementation of the Insert method that the preceding code example uses. Il InsertNewEmployeeWrapper metodo viene aggiunto EmployeeLogic all'oggetto di livello intermedio per consentire un funzionamento più semplice dell'oggetto con il ObjectDataSource controllo negli scenari Web, senza una sostanziale riscrittura alla logica di business effettiva.The InsertNewEmployeeWrapper method is added to the EmployeeLogic middle-tier object to enable the object to work more easily with the ObjectDataSource control in Web scenarios, without a substantial rewrite to the actual business logic.

// 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 nella InsertParameters raccolta devono corrispondere ai nomi e ai tipi dei parametri presenti nel metodo specificato InsertMethod dalla firma della proprietà.The names and types of the parameters that are contained in the InsertParameters collection must match the names and types of the parameters that are in the method specified by the InsertMethod property signature. 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 i parametri forniti da controllo con associazione a dati.When working with data-bound controls that supply parameters, such as GridView and DetailsView, the ObjectDataSource control automatically merges any parameters that are explicitly specified in the collection with those parameters that are provided by the data-bound control. Per ulteriori informazioni, vedere InsertMethod.For more information, see InsertMethod.

Si applica a

Vedi anche