ObjectDataSourceView.InsertParameters Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'insieme di parametri contenente i parametri utilizzati dal metodo 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
Valore della proprietà
Oggetto ParameterCollection contenente i parametri utilizzati dalla proprietà InsertMethod.
Esempio
In questa sezione sono riportati due esempi di codice. Il primo esempio di codice illustra come visualizzare i dati filtrati usando un controllo con un oggetto business e un ObjectDataSourceDetailsView controllo per inserire dati. Il secondo esempio di codice fornisce un'implementazione di esempio del metodo usato nel primo esempio di Insert
codice.
Nell'esempio di codice seguente viene illustrato come usare un controllo con un ObjectDataSource oggetto business e un DetailsView controllo per inserire dati. Inizialmente DetailsView viene visualizzato un nuovo NorthwindEmployee
record, insieme a un pulsante Inserisci generato automaticamente. Dopo aver immesso i dati nei campi del DetailsView controllo, fare clic sul pulsante Inserisci . La InsertMethod proprietà identifica il metodo che esegue l'operazione Insert .
Se si fa clic sul pulsante Inserisci , l'operazione Insert viene eseguita usando il metodo specificato dalla InsertMethod proprietà e tutti i parametri specificati nella InsertParameters raccolta. In questo esempio di codice viene specificato un parametro nella InsertParameters raccolta che corrisponde all'ID del supervisore. Questo perché, anche se l'ID viene visualizzato nell'insieme Fields per il DetailsView controllo come BoundField oggetto, verrà passato come stringa al ObjectDataSource controllo. Aggiungendolo in modo esplicito alla InsertParameters raccolta con una Type proprietà impostata sul Int32 valore, verrà passata correttamente dal ObjectDataSource metodo come int
, non come string
.
Quando viene eseguita l'operazione Insert , viene chiamato il metodo identificato dalla InsertMethod proprietà . Se il metodo dell'oggetto ha una firma del metodo che include parametri, l'insieme Insert
InsertParameters deve contenere un parametro con nomi che corrispondono ai parametri della firma del metodo per Insert il completamento corretto.
<%@ 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>
Nell'esempio di codice seguente viene fornita un'implementazione di esempio del metodo usato dall'esempio Insert
di codice precedente. Il InsertNewEmployeeWrapper
metodo viene aggiunto all'oggetto EmployeeLogic
livello intermedio per consentire all'oggetto di funzionare più facilmente con il ObjectDataSource controllo negli scenari Web, senza una riscrittura sostanziale alla logica di business effettiva.
// 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
Commenti
I nomi e i tipi dei parametri contenuti nell'insieme InsertParameters devono corrispondere ai nomi e ai tipi dei parametri inclusi nel metodo specificato dalla firma della InsertMethod proprietà. Quando si utilizzano controlli associati a dati che forniscono parametri, ad esempio GridView e DetailsView, il ObjectDataSource controllo unisce automaticamente tutti i parametri specificati in modo esplicito nella raccolta con tali parametri forniti dal controllo associato ai dati. Per altre informazioni, vedere InsertMethod.