ObjectDataSourceView.InsertParameters Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar den parametersamling som innehåller de parametrar som används av InsertMethod metoden.
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
Egenskapsvärde
En ParameterCollection som innehåller de parametrar som används av egenskapen InsertMethod .
Exempel
Det här avsnittet innehåller två kodexempel. Det första kodexemplet visar hur du visar filtrerade data med hjälp av en ObjectDataSource kontroll med ett affärsobjekt och en DetailsView kontroll för att infoga data. Det andra kodexemplet innehåller ett exempel på implementering av metoden Insert som används i det första kodexemplet.
Följande kodexempel visar hur du använder en ObjectDataSource kontroll med ett affärsobjekt och en DetailsView kontroll för att infoga data. Inledningsvis DetailsView visas en ny NorthwindEmployee post, tillsammans med en automatiskt genererad Infoga-knapp . När du har angett data i fälten i DetailsView kontrollen klickar du på knappen Infoga . Egenskapen InsertMethod identifierar vilken metod som utför åtgärden Insert .
Om du klickar på knappen Insert utförs åtgärden med den metod som anges av InsertMethod egenskapen och eventuella parametrar som anges i InsertParameters samlingen. I det här kodexemplet anges en parameter i samlingen InsertParameters som motsvarar övervakarens ID. Detta beror på att även om ID:t visas i Fields samlingen för DetailsView kontrollen som ett BoundField objekt, skickas det som en sträng till ObjectDataSource kontrollen. Genom att lägga till den explicit i InsertParameters samlingen med en Type egenskap som är inställd på Int32 värdet skickas den korrekt av ObjectDataSource metoden till som , intinte som string.
När åtgärden Insert utförs anropas den metod som identifieras av InsertMethod egenskapen.
Insert Om -metoden för objektet har en metodsignatur som innehåller parametrar måste InsertParameters samlingen innehålla en parameter med namn som matchar metodsignaturparametrarna för Insert att slutföras.
<%@ 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>
Följande kodexempel innehåller ett exempel på implementering av metoden Insert som används i föregående kodexempel. Metoden InsertNewEmployeeWrapper läggs till i EmployeeLogic mellannivåobjektet så att objektet kan fungera enklare med ObjectDataSource kontrollen i webbscenarier, utan någon större omskrivning till den faktiska affärslogiken.
// 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
Kommentarer
Namn och typer av parametrar som finns i InsertParameters samlingen måste matcha namnen och typerna av parametrarna som finns i den metod som anges av egenskapssignaturen InsertMethod . När du arbetar med databundna kontroller som tillhandahåller parametrar, till exempel GridView och DetailsView, ObjectDataSource sammanfogar kontrollen automatiskt alla parametrar som uttryckligen anges i samlingen med de parametrar som tillhandahålls av den databundna kontrollen. Mer information finns i InsertMethod.