ObjectDataSourceView.InsertParameters Właściwość

Definicja

Pobiera kolekcję parametrów zawierającą parametry, które są używane przez InsertMethod metodę.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

Wartość właściwości

ParameterCollection

Zawierający ParameterCollection parametry używane przez InsertMethod Właściwość.A ParameterCollection that contains the parameters used by the InsertMethod property.

Przykłady

Ten rozdział zawiera dwa przykłady kodu.This section contains two code examples. Pierwszy przykład kodu demonstruje sposób wyświetlania filtrowanych danych przy użyciu ObjectDataSource kontrolki z obiektem biznesowym i DetailsView kontrolki do wstawiania danych.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. Drugi przykład kodu zawiera przykładową implementację Insert metody, która jest używana w pierwszym przykładzie kodu.The second code example provides an example implementation of the Insert method that is used in the first code example.

Poniższy przykład kodu demonstruje, jak używać ObjectDataSource kontrolki z obiektem biznesowym i DetailsView kontrolki do wstawiania danych.The following code example demonstrates how to use an ObjectDataSource control with a business object and a DetailsView control to insert data. DetailsViewPoczątkowo wyświetla nowy NorthwindEmployee rekord wraz z automatycznie wygenerowanym przyciskiem wstawiania .The DetailsView initially displays a new NorthwindEmployee record, along with an automatically generated Insert button. Po wprowadzeniu danych do pól DetailsView kontrolki kliknij przycisk Wstaw .After you enter data into the fields of the DetailsView control, click the Insert button. InsertMethodWłaściwość określa, która metoda wykonuje Insert operację.The InsertMethod property identifies which method performs the Insert operation.

Kliknięcie przycisku Wstaw powoduje Insert wykonanie operacji przy użyciu metody, która jest określona przez InsertMethod Właściwość i wszystkie parametry, które są określone w InsertParameters kolekcji.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. W tym przykładzie kodu jeden parametr jest określony w InsertParameters kolekcji, który odpowiada identyfikatorowi osoby nadzorującej.In this code example, one parameter is specified in the InsertParameters collection that corresponds to the supervisor's ID. Jest to spowodowane tym, że mimo że identyfikator jest wyświetlany w Fields kolekcji dla DetailsView kontrolki jako BoundField obiekt, zostanie przeniesiona jako ciąg do ObjectDataSource kontrolki.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. Poprzez dodanie go jawnie do InsertParameters kolekcji z Type właściwością ustawioną na Int32 wartość, zostanie ona prawidłowo przeniesiona przez ObjectDataSource metodę jako int , a nie jako 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.

Po Insert wykonaniu operacji wywoływana jest metoda, która jest identyfikowana przez InsertMethod Właściwość.When the Insert operation is performed, the method that is identified by the InsertMethod property is called. Jeśli Insert Metoda obiektu ma sygnaturę metody, która zawiera parametry, InsertParameters Kolekcja musi zawierać parametr z nazwami, które pasują do parametrów sygnatury metody, Insert Aby zakończyć pomyślnie.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>

Poniższy przykład kodu zawiera przykładową implementację Insert metody, której używa poprzedni kod.The following code example provides an example implementation of the Insert method that the preceding code example uses. InsertNewEmployeeWrapperMetoda jest dodawana do EmployeeLogic obiektu warstwy środkowej, aby obiekt działał łatwiej z ObjectDataSource kontrolką w scenariuszach sieci Web, bez znacznego ponownego zapisu do rzeczywistej logiki biznesowej.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

Uwagi

Nazwy i typy parametrów, które są zawarte w InsertParameters kolekcji, muszą być zgodne z nazwami i typami parametrów, które są w metodzie określonej przez InsertMethod sygnaturę właściwości.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. Podczas pracy z kontrolkami związanymi z danymi, które dostarczają parametry, takie jak GridView i DetailsView , ObjectDataSource formant automatycznie scala wszystkie parametry, które są jawnie określone w kolekcji z tymi parametrami, które są dostarczane przez formant powiązany z danymi.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. Aby uzyskać więcej informacji, zobacz InsertMethod.For more information, see InsertMethod.

Dotyczy

Zobacz też