Sdílet prostřednictvím


ObjectDataSourceView.InsertParameters Vlastnost

Definice

Získá kolekci parametrů obsahující parametry, které jsou používány metodou 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

Hodnota vlastnosti

A ParameterCollection , který obsahuje parametry používané vlastností InsertMethod .

Příklady

Tato část obsahuje dva příklady kódu. První příklad kódu ukazuje, jak zobrazit filtrovaná data pomocí ObjectDataSource ovládacího prvku s obchodním objektem a ovládacím DetailsView prvku pro vložení dat. Druhý příklad kódu poskytuje ukázkovou implementaci Insert metody, která se používá v prvním příkladu kódu.

Následující příklad kódu ukazuje použití ObjectDataSource ovládacího prvku s obchodním objektem a ovládacím DetailsView prvku k vložení dat. Na DetailsView začátku se zobrazí nový NorthwindEmployee záznam spolu s automaticky vygenerovaným tlačítkem Vložit . Po zadání dat do polí DetailsView ovládacího prvku klikněte na tlačítko Vložit . Vlastnost InsertMethod identifikuje, která metoda provádí Insert operaci.

Pokud kliknete na tlačítko Vložit , Insert operace se provádí pomocí metody, která je určena InsertMethod vlastností a všechny parametry zadané v kolekci InsertParameters . V tomto příkladu InsertParameters kódu je v kolekci zadán jeden parametr, který odpovídá ID nadřízeného. Důvodem je to, že i když se ID zobrazí v Fields kolekci DetailsView ovládacího prvku jako BoundField objekt, předá se do ovládacího prvku jako řetězec ObjectDataSource . Přidáním explicitně do kolekce s Type vlastností, která je nastavena na Int32 hodnotu, bude předána správně ObjectDataSource metodě jako int, ne jako string.InsertParameters

Při Insert provedení operace je volána metoda, která je identifikována InsertMethod vlastností. Insert Pokud má metoda objektu podpis metody, který obsahuje parametry, InsertParameters kolekce musí obsahovat parametr s názvy, které odpovídají parametrům Insert podpisu metody, aby bylo úspěšně dokončeno.

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

Následující příklad kódu poskytuje ukázkovou implementaci Insert metody, kterou používá předchozí příklad kódu. Metoda InsertNewEmployeeWrapper je přidána do objektu EmployeeLogic střední vrstvy, aby objekt mohl snadněji pracovat s ovládacím ObjectDataSource prvek ve webových scénářích, aniž by se podstatně přepisoval na skutečnou obchodní logiku.

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

Poznámky

Názvy a typy parametrů obsažených v InsertParameters kolekci musí odpovídat názvům a typům parametrů, které jsou v metodě určené podpisem InsertMethod vlastnosti. Při práci s ovládacími prvky vázanými na data, které poskytují parametry, například GridView a DetailsView, ObjectDataSource ovládací prvek automaticky sloučí všechny parametry, které jsou explicitně specifikovány v kolekci s parametry, které poskytuje ovládací prvek vázané na data. Další informace najdete na webu InsertMethod.

Platí pro

Viz také