Freigeben über


ObjectDataSourceView.InsertParameters Eigenschaft

Definition

Ruft die Parameterauflistung ab, die die Parameter enthält, die von der InsertMethod Methode verwendet werden.

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

A ParameterCollection , das 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 Steuerelements mit einem ObjectDataSource Geschäftsobjekt und einem DetailsView Steuerelement zum Einfügen von Daten angezeigt werden. Das zweite Codebeispiel stellt eine Beispielimplementierung der Insert Methode bereit, die im ersten Codebeispiel verwendet wird.

Im folgenden Codebeispiel wird die Verwendung eines ObjectDataSource Steuerelements mit einem Geschäftsobjekt und einem DetailsView Steuerelement zum Einfügen von Daten veranschaulicht. Zunächst DetailsView wird ein neuer NorthwindEmployee Datensatz zusammen mit einer automatisch generierten Schaltfläche "Einfügen " angezeigt. Nachdem Sie Daten in die Felder des DetailsView Steuerelements eingegeben haben, klicken Sie auf die Schaltfläche "Einfügen ". Die InsertMethod Eigenschaft gibt an, 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 InsertMethod Eigenschaft und allen Parametern angegeben wird, die in der InsertParameters Auflistung angegeben sind. In diesem Codebeispiel wird in der Auflistung ein Parameter angegeben, der InsertParameters der ID des Supervisors entspricht. Dies liegt daran, dass die ID, obwohl die ID in der Fields Auflistung für das DetailsView Steuerelement als BoundField Objekt angezeigt wird, als Zeichenfolge an das ObjectDataSource Steuerelement übergeben wird. Durch das explizite Hinzufügen der InsertParameters Auflistung mit einer Type Eigenschaft, die auf den Int32 Wert festgelegt ist, wird sie von der ObjectDataSource Methode korrekt als , nicht als intübergeben string.

Wenn der Insert Vorgang ausgeführt wird, wird die von der InsertMethod Eigenschaft identifizierte Methode 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 der Insert Vorgang erfolgreich abgeschlossen werden kann.

<%@ 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 Insert Methode bereitgestellt, die im vorherigen Codebeispiel verwendet wird. Die InsertNewEmployeeWrapper Methode wird dem EmployeeLogic Objekt der mittleren Ebene hinzugefügt, damit das Objekt einfacher mit dem ObjectDataSource Steuerelement in Webszenarien funktioniert, ohne dass eine wesentliche Neuschreibung in die eigentliche Geschäftslogik erforderlich ist.

// 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 mit den Namen und Typen der Parameter übereinstimmen, die sich in der durch die InsertMethod Eigenschaftssignatur angegebenen Methode befinden. Beim Arbeiten mit datengebundenen Steuerelementen, die Parameter bereitstellen, z GridView . B. und DetailsView, führt das ObjectDataSource Steuerelement automatisch alle Parameter zusammen, die explizit in der Auflistung angegeben sind, mit den Parametern, die vom datengebundenen Steuerelement bereitgestellt werden. Weitere Informationen finden Sie unter InsertMethod.

Gilt für:

Weitere Informationen