Freigeben über


ObjectDataSourceView.InsertParameters Eigenschaft

Definition

Ruft die Parameterauflistung ab, die die von der InsertMethod-Methode verwendeten Parameter enthält.

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

Eigenschaftswert

ParameterCollection

Eine ParameterCollection, die die von der InsertMethod-Eigenschaft verwendeten Parameter enthält.

Beispiele

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie gefilterte Daten mithilfe eines ObjectDataSource Steuerelements mit einem Geschäftsobjekt und einem DetailsView Steuerelement angezeigt werden, um Daten einzufügen. Im zweiten Codebeispiel wird eine Beispielimplementierung der Methode bereitgestellt, die Insert im ersten Codebeispiel verwendet wird.

Im folgenden Codebeispiel wird veranschaulicht, wie sie ein ObjectDataSource Steuerelement mit einem Geschäftsobjekt und einem DetailsView Steuerelement zum Einfügen von Daten verwenden. Zunächst DetailsView wird ein neuer NorthwindEmployee Datensatz angezeigt, zusammen mit einer automatisch generierten Schaltfläche "Einfügen ". Nachdem Sie Daten in die Felder des DetailsView Steuerelements eingegeben haben, klicken Sie auf die Schaltfläche "Einfügen ". Die InsertMethod Eigenschaft identifiziert, welche Methode den Insert Vorgang ausführt.

Wenn Sie auf die Schaltfläche " Einfügen " klicken, wird der Insert Vorgang mithilfe der Methode ausgeführt, die von der Eigenschaft und allen Parametern angegeben wird, die in der InsertMethod InsertParameters Auflistung angegeben sind. In diesem Codebeispiel wird ein Parameter in der Auflistung angegeben, die der InsertParameters ID des Vorgesetzten entspricht. Dies liegt daran, dass die ID in der Fields Auflistung für das DetailsView Steuerelement als BoundField Objekt angezeigt wird, wird sie als Zeichenfolge an das ObjectDataSource Steuerelement übergeben. Durch Das Hinzufügen explizit zur InsertParameters Auflistung mit einer Type Eigenschaft, die auf den Int32 Wert festgelegt ist, wird er ordnungsgemäß von ObjectDataSource der Methode als , nicht als int``stringübergeben.

Wenn der Insert Vorgang ausgeführt wird, wird die Methode, die von der InsertMethod Eigenschaft identifiziert wird, aufgerufen. Wenn die Insert Methode des Objekts über eine Methodensignatur verfügt, die Parameter enthält, muss die InsertParameters Auflistung einen Parameter mit Namen enthalten, die den Methodensignaturparametern entsprechen, damit sie Insert erfolgreich abgeschlossen werden.

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

Im folgenden Codebeispiel wird eine Beispielimplementierung der Methode bereitgestellt, die Insert das vorherige Codebeispiel verwendet. Die InsertNewEmployeeWrapper Methode wird dem mittleren Objekt hinzugefügt, um das Objekt einfacher mit dem EmployeeLogic ObjectDataSource Steuerelement in Webszenarien zu arbeiten, ohne eine erhebliche Neuschreibung in die tatsächliche Geschäftslogik zu erstellen.

// 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

Hinweise

Die Namen und Typen der Parameter, die in der InsertParameters Auflistung enthalten sind, müssen den Namen und Typen der Parameter entsprechen, die in der von der InsertMethod Eigenschaftssignatur angegebenen Methode enthalten sind. Beim Arbeiten mit datengebundenen Steuerelementen, die Parameter angeben, z GridView . B. und DetailsView, führt das ObjectDataSource Steuerelement automatisch alle Parameter zusammen, die explizit in der Auflistung mit diesen Parametern angegeben werden, die vom datengebundenen Steuerelement bereitgestellt werden. Weitere Informationen finden Sie unter InsertMethod.

Gilt für

Siehe auch