ObjectDataSource.InsertParameters Tulajdonság

Definíció

Lekéri a tulajdonság által használt paramétereket tartalmazó paramétergyűjteményt InsertMethod .

public:
 property System::Web::UI::WebControls::ParameterCollection ^ InsertParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.ParameterCollection InsertParameters { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.InsertParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property InsertParameters As ParameterCollection

Tulajdonság értéke

A ParameterCollection tulajdonság által InsertMethod azonosított metódus által használt paramétereket tartalmazó.

Attribútumok

Példák

Ez a szakasz két példakódot tartalmaz. Az első példakód bemutatja, hogyan használható egy ObjectDataSource objektum egy üzleti objektummal és egy vezérlővel DetailsView az adatok beszúrására. A második példakód az első kód példában használt metódus implementációját Insert szemlélteti.

Az alábbi példakód bemutatja, hogyan használható egy ObjectDataSource vezérlő egy üzleti objektummal és egy vezérlővel DetailsView az adatok beszúrására. Kezdetben a DetailsView szövegmezők jelennek meg, amelyekben adatokat adhat meg egy új NorthwindEmployee rekordhoz, valamint egy automatikusan létrehozott Beszúrás gombot. Miután adatokat ad meg a DetailsView vezérlő mezőibe, kattintson a Beszúrás gombra. A InsertMethod tulajdonság azonosítja, hogy melyik metódus hajtja végre a beszúrási műveletet.

Ha a Beszúrás gombra kattint, a művelet a tulajdonság által megadott módszerrel és a InsertMethodInsertParameters gyűjteményben megadott paraméterekkel történik. Ebben a kód példában egy paraméter van megadva a InsertParameters gyűjteményben, amely megfelel a felügyelő azonosítójának. Ennek az az oka, hogy annak ellenére, hogy az azonosító objektumként Rows jelenik meg a DetailsViewBoundField vezérlőelem gyűjteményében, a rendszer sztringként továbbítja azt a ObjectDataSource vezérlőnek. Ha explicit módon hozzáadja azt a InsertParameters gyűjteményhez egy Type értékre Int32 beállított tulajdonsággal, a ObjectDataSource metódus Int32helyesen továbbítja, nem sztringként.

Insert A művelet végrehajtásakor a rendszer meghívja a tulajdonság által InsertMethod azonosított metódust. Ha az Insert objektum metódusa rendelkezik paramétereket tartalmazó metódus-aláírással, a InsertParameters gyűjteménynek olyan paramétereket kell tartalmaznia, amelyek neve megegyezik a metódus metódusaadék paramétereivel a Insert sikeres befejezéshez.

Important

Ellenőrizze az ügyféltől kapott paraméterértéket. A futtatókörnyezet egyszerűen lecseréli a paraméter értékét a InsertMethod tulajdonságra.

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

Az alábbi példakód az előző kód példája által használt metódus implementálását Insert szemlélteti. A InsertNewEmployeeWrapper rendszer hozzáadja a metódust a EmployeeLogic középső rétegbeli objektumhoz, amely az ObjectDataSource osztály áttekintésében található, hogy az objektum könnyebben működjön a ObjectDataSource webes forgatókönyvek vezérlőivel anélkül, hogy a tényleges üzleti logikát jelentősen átírták.

A példa futtatásához rendelkeznie kell az NorthwindEmployee osztály áttekintésében ObjectDataSource megadott osztályval. Ez a példa csak azt szemlélteti, hogyan csatlakoztatható egy ObjectDataSource olyan üzleti objektummetódushoz, amely paraméterek használatával adatokat kér le egy új adatbázisrekordhoz. A példa nem ad hozzá rekordokat az adatbázishoz, mert az Save osztály metódusa nem tartalmazza az NorthwindEmployee adatbázis frissítésére szolgáló kódot.

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

Megjegyzések

A gyűjteményben InsertParameters található paraméterek nevének és típusának meg kell egyeznie a tulajdonság-aláírásban szereplő InsertMethod paraméterek nevével és típusával. A paraméternevek megkülönböztetik a kis- és nagybetűket. Ha olyan adathoz kötött vezérlőkkel dolgozik, amelyek paramétereket biztosítanak, például a vezérlőket és GridView a DetailsView vezérlőket, a ObjectDataSource vezérlő automatikusan egyesíti a gyűjteményben explicit módon megadott paramétereket az adathoz kötött vezérlő által biztosított paraméterekkel. Ez azért fontos, mert az adathoz kötött vezérlők mindig típusként String adják meg a paramétereket, és ha a metódus-aláírás numerikus vagy dátumtípusokat is tartalmaz, akkor explicit módon fel kell vennie egy paramétert a InsertParameters gyűjteménybe a megfelelő típussal. Ellenkező esetben a ObjectDataSource vezérlő megpróbálja a paramétereket a gyűjtemény paraméterei által meghatározott típusnak megfelelően leadni. További információ: Paraméterek használata az ObjectDataSource-vezérlővel.

A InsertParameters tulajdonság lekéri a InsertParameters vezérlőelemhez társított tulajdonság által ObjectDataSourceView tartalmazott tulajdonságot ObjectDataSource .

A paraméterek egyesítésével, az objektumok élettartamával és a metódusfeloldással kapcsolatos további információkért lásd: InsertMethod.

A következőre érvényes:

Lásd még