ObjectDataSourceView.InsertParameters プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
プロパティ値
ParameterCollection プロパティによって使用されるパラメーターを格納している InsertMethod。
例
このセクションには、2 つのコード例が含まれています。 最初のコード例では、ビジネス オブジェクトとデータを挿入するコントロールを ObjectDataSource 使用して、フィルター処理されたデータを DetailsView 表示する方法を示します。 2 番目のコード例では、最初の Insert
コード例で使用される メソッドの実装例を示します。
次のコード例では、ビジネス オブジェクトとコントロールでコントロールを ObjectDataSource 使用してデータを DetailsView 挿入する方法を示します。 では DetailsView 、最初に新 NorthwindEmployee
しいレコードが自動的に生成された [挿入] ボタンと共に表示されます。 コントロールの DetailsView フィールドにデータを入力したら、[ 挿入 ] ボタンをクリックします。 プロパティは InsertMethod 、操作を実行するメソッドを Insert 識別します。
[ 挿入 ] ボタンをクリックすると、 Insert プロパティで指定されたメソッドと、コレクションに InsertMethod 指定されているパラメーターを使用して操作が InsertParameters 実行されます。 このコード例では、スーパーバイザの ID に対応する 1 つのパラメーターがコレクションに InsertParameters 指定されています。 これは、ID がオブジェクトとしてBoundFieldコントロールのコレクションDetailsViewにFields表示されていても、コントロールに文字列ObjectDataSourceとして渡されるためです。 値に設定されたプロパティをType使用してInsertParametersコレクションに明示的にInt32追加することで、 メソッドに ObjectDataSource としてではなく、 としてint
string
正しく渡されます。
操作が Insert 実行されると、 プロパティによって InsertMethod 識別されるメソッドが呼び出されます。 オブジェクトのメソッドに Insert
パラメーターを含むメソッド シグネチャがある場合、コレクションには、 InsertParameters が正常に完了するためのメソッド シグネチャ パラメーターと一致する名前のパラメーター Insert が含まれている必要があります。
<%@ 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>
次のコード例では、前のコード例で使用する Insert
メソッドの実装例を示します。 メソッドは InsertNewEmployeeWrapper
中間層オブジェクトに EmployeeLogic
追加され、オブジェクトが実際のビジネス ロジックに大幅に書き換えることなく、Web シナリオのコントロールをより簡単 ObjectDataSource に操作できるようにします。
// 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
注釈
コレクションに含まれるパラメーターの名前と型は、プロパティシグネチャで InsertParameters 指定されたメソッドにあるパラメーターの名前と型と一致する InsertMethod 必要があります。 や DetailsViewObjectDataSource などのGridViewパラメーターを提供するデータ バインド コントロールを操作する場合、コントロールは、コレクションで明示的に指定されているパラメーターと、データ バインド コントロールによって提供されるパラメーターを自動的にマージします。 詳細については、「InsertMethod」を参照してください。
適用対象
こちらもご覧ください
.NET