ObjectDataSourceView.InsertParameters Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá kolekci parametrů, která obsahuje 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é InsertMethod vlastností .
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 DetailsView a ovládacího 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, jak použít ovládací prvek ObjectDataSource s obchodním objektem a ovládací prvek DetailsView pro 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 určuje, která metoda provádí Insert operaci.
Pokud kliknete na tlačítko Vložit , Insert operace se provede pomocí metody, která je určena InsertMethod vlastností a všemi parametry zadanými v kolekci InsertParameters . V tomto příkladu kódu je v kolekci InsertParameters zadán jeden parametr, který odpovídá ID správce. Důvodem je to, že i když se ID ovládacího prvku zobrazí v Fields kolekci DetailsView jako BoundField objekt, předá se ovládacímu ObjectDataSource prvku jako řetězec. Když ho InsertParameters přidáte explicitně do kolekce s vlastností nastavenou Type na Int32 hodnotu, bude metoda správně předána ObjectDataSource jako int
, ne jako string
.
Insert Při provedení operace je volána metoda, která je identifikovaná InsertMethod vlastností .
Insert
Pokud má metoda objektu signaturu metody, která obsahuje parametry, InsertParameters musí kolekce obsahovat parametr s názvy, které odpovídají parametrům podpisu metody, Insert aby se úspěšně dokončil.
<%@ 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 příklad implementace 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 prvku ve webových scénářích, aniž by bylo nutné provést podstatné přepsání skutečné obchodní logiky.
// 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, jako GridView jsou a DetailsView, ObjectDataSource ovládací prvek automaticky sloučí všechny parametry, které jsou explicitně zadané v kolekci, s parametry, které poskytuje ovládací prvek vázané na data. Další informace naleznete v tématu InsertMethod.