ObjectDataSourceMethodEventArgs.InputParameters プロパティ
アセンブリ: System.Web (system.web.dll 内)

Dim instance As ObjectDataSourceMethodEventArgs Dim value As IOrderedDictionary value = instance.InputParameters
ビジネス オブジェクトのメソッドのパラメータと対応する値を示す、名前/値ペアの IDictionary。

パラメータは、参照渡しまたは値渡しで、ビジネス オブジェクトのメソッドに渡すことができます。ObjectDataSourceMethodEventHandler オブジェクトを使用して Selecting、Updating、Inserting、または Deleting イベントを処理する場合に、InputParameters プロパティを使用すると、これらのパラメータにアクセスしてパラメータを操作できます。このディクショナリのパラメータに変更を加えると、操作でどのメソッド オーバーロードが呼び出されるかに影響します。ObjectDataSource コントロールの DataObjectTypeName プロパティを設定すると、変更できるのはこのディクショナリの項目のデータ オブジェクト プロパティのみになり、パラメータの追加または削除はできなくなります。詳細については、「Delete」を参照してください。
参照渡して渡したパラメータは、ObjectDataSourceStatusEventArgs オブジェクトの OutputParameters プロパティで返されます。

DropDownList コントロール、TextBox コントロール、および複数の ObjectDataSource コントロールを使用してデータを更新する方法を次のコード例に示します。TextBox コントロールがアドレス情報の入力と更新に使用されるのに対し、DropDownList は、Northwind Employee の名前を表示します。UpdateParameters プロパティには、 DropDownList コントロールで選択された値にバインドされた ControlParameter オブジェクトが格納されているため、Update メソッドを発生させるボタンは、従業員を選択するまで有効になりません。
この例では、InputParameters コレクションに正しいパラメータと値を追加するために、Update メソッドの前に NorthwindEmployeeUpdating メソッドが呼び出されます。パラメータと値は、この例で示したように動的に追加することもできますし、宣言によって追加することもできます。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %> <%@ Page language="vb" %> <%@ Import namespace="Samples.AspNet.VB" %> <Script runat="server"> ' Add parameters and initialize the user interface ' only if an employee is selected. Private Sub Page_Load(sender As Object, e As EventArgs) ' Be sure the text boxes are initialized with ' data from the currently selected employee. Dim selectedEmployee As NorthwindEmployee selectedEmployee = EmployeeLogic.GetEmployee(DropDownList1.SelectedValue) If Not selectedEmployee Is Nothing Then AddressBox.Text = selectedEmployee.Address CityBox.Text = selectedEmployee.City PostalCodeBox.Text = selectedEmployee.PostalCode Button1.Enabled = True Else Button1.Enabled = False End If End Sub ' Page_Load ' Press the button to update. Private Sub Btn_UpdateEmployee (sender As Object, e As CommandEventArgs) ObjectDataSource2.Update() End Sub ' Btn_UpdateEmployee ' Dynamically add parameters to the InputParameters collection. Private Sub NorthwindEmployeeUpdating(source As Object, e As ObjectDataSourceMethodEventArgs) ' The names of the parameters are the same as ' the variable names for the method that is invoked to ' perform the Update. The InputParameters collection is ' an IDictionary collection of name/value pairs, ' not a ParameterCollection. e.InputParameters.Add("anID", DropDownList1.SelectedValue) e.InputParameters.Add("anAddress" ,AddressBox.Text) e.InputParameters.Add("aCity" ,CityBox.Text) e.InputParameters.Add("aPostalCode",PostalCodeBox.Text) End Sub ' NorthwindEmployeeUpdating </Script> <html> <head> <title>ObjectDataSource - VB Example</title> </head> <body> <form id="Form1" method="post" runat="server"> <!-- The DropDownList is bound to the first ObjectDataSource. --> <asp:objectdatasource id="ObjectDataSource1" runat="server" selectmethod="GetAllEmployees" typename="Samples.AspNet.VB.EmployeeLogic" /> <p><asp:dropdownlist id="DropDownList1" runat="server" datasourceid="ObjectDataSource1" datatextfield="FullName" datavaluefield="EmpID" autopostback="True" /></p> <!-- The second ObjectDataSource performs the Update. This preserves the state of the DropDownList, which otherwise would rebind when the DataSourceChanged event is raised as a result of an Update operation. --> <asp:objectdatasource id="ObjectDataSource2" runat="server" updatemethod="UpdateEmployeeWrapper" onupdating="NorthwindEmployeeUpdating" typename="Samples.AspNet.VB.EmployeeLogic" /> <p><asp:textbox id="AddressBox" runat="server" /></p> <p><asp:textbox id="CityBox" runat="server" /></p> <p><asp:textbox id="PostalCodeBox" runat="server" /></p> <asp:button id="Button1" runat="server" text="Update Employee" oncommand="Btn_UpdateEmployee" /> </form> </body> </html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %> <%@ Page language="c#" %> <%@ Import namespace="Samples.AspNet.CS" %> <Script runat="server"> // Add parameters and initialize the user interface // only if an employee is selected. private void Page_Load(object sender, EventArgs e) { // Be sure the text boxes are initialized with // data from the currently selected employee. NorthwindEmployee selectedEmployee = EmployeeLogic.GetEmployee(DropDownList1.SelectedValue); if (selectedEmployee != null) { AddressBox.Text = selectedEmployee.Address; CityBox.Text = selectedEmployee.City; PostalCodeBox.Text = selectedEmployee.PostalCode; Button1.Enabled = true; } else { Button1.Enabled = false; } } // Press the button to update. private void Btn_UpdateEmployee (object sender, CommandEventArgs e) { ObjectDataSource2.Update(); } // Dynamically add parameters to the InputParameters collection. private void NorthwindEmployeeUpdating(object source, ObjectDataSourceMethodEventArgs e) { // The names of the parameters are the same as // the variable names for the method that is invoked to // perform the Update. The InputParameters collection is // an IDictionary collection of name/value pairs, // not a ParameterCollection. e.InputParameters.Add("anID", DropDownList1.SelectedValue); e.InputParameters.Add("anAddress" ,AddressBox.Text); e.InputParameters.Add("aCity" ,CityBox.Text); e.InputParameters.Add("aPostalCode",PostalCodeBox.Text); } </Script> <html> <head> <title>ObjectDataSource - C# Example</title> </head> <body> <form id="Form1" method="post" runat="server"> <!-- The DropDownList is bound to the first ObjectDataSource. --> <asp:objectdatasource id="ObjectDataSource1" runat="server" selectmethod="GetAllEmployees" typename="Samples.AspNet.CS.EmployeeLogic" /> <p><asp:dropdownlist id="DropDownList1" runat="server" datasourceid="ObjectDataSource1" datatextfield="FullName" datavaluefield="EmpID" autopostback="True" /></p> <!-- The second ObjectDataSource performs the Update. This preserves the state of the DropDownList, which otherwise would rebind when the DataSourceChanged event is raised as a result of an Update operation. --> <asp:objectdatasource id="ObjectDataSource2" runat="server" updatemethod="UpdateEmployeeWrapper" onupdating="NorthwindEmployeeUpdating" typename="Samples.AspNet.CS.EmployeeLogic" /> <p><asp:textbox id="AddressBox" runat="server" /></p> <p><asp:textbox id="CityBox" runat="server" /></p> <p><asp:textbox id="PostalCodeBox" runat="server" /></p> <asp:button id="Button1" runat="server" text="Update Employee" oncommand="Btn_UpdateEmployee" /> </form> </body> </html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.JSL" Assembly="Samples.AspNet.JSL" %> <%@ Page Language="VJ#" %> <%@ Import namespace="Samples.AspNet.JSL" %> <Script runat="server"> // Add parameters and initialize the user interface // only if an employee is selected. private void Page_Load(Object sender, System.EventArgs e) throws NorthwindDataException { // Be sure the text boxes are initialized with // data from the currently selected employee. NorthwindEmployee selectedEmployee = EmployeeLogic.GetEmployee(DropDownList1.get_SelectedValue()); if (selectedEmployee != null) { AddressBox.set_Text(selectedEmployee.get_Address()); CityBox.set_Text(selectedEmployee.get_City()); PostalCodeBox.set_Text(selectedEmployee.get_PostalCode()); Button1.set_Enabled(true); } else { Button1.set_Enabled(false); } } //Page_Load // Press the button to update. private void Btn_UpdateEmployee(Object sender, CommandEventArgs e) { ObjectDataSource2.Update(); } //Btn_UpdateEmployee // Dynamically add parameters to the InputParameters collection. private void NorthwindEmployeeUpdating(Object source, ObjectDataSourceMethodEventArgs e) { // The names of the parameters are the same as // the variable names for the method that is invoked to // perform the Update. The InputParameters collection is // an IDictionary collection of name/value pairs, // not a ParameterCollection. e.get_InputParameters().Add("anID", DropDownList1.get_SelectedValue()); e.get_InputParameters().Add("anAddress", AddressBox.get_Text()); e.get_InputParameters().Add("aCity", CityBox.get_Text()); e.get_InputParameters().Add("aPostalCode", PostalCodeBox.get_Text()); } //NorthwindEmployeeUpdating </Script> <html> <head> <title>ObjectDataSource - VJ# Example</title> </head> <body> <form id="Form1" method="post" runat="server"> <!-- The DropDownList is bound to the first ObjectDataSource. --> <asp:objectdatasource id="ObjectDataSource1" runat="server" selectmethod="GetAllEmployees" typename="Samples.AspNet.JSL.EmployeeLogic" /> <p><asp:dropdownlist id="DropDownList1" runat="server" datasourceid="ObjectDataSource1" datatextfield="FullName" datavaluefield="EmpID" autopostback="True" /></p> <!-- The second ObjectDataSource performs the Update. This preserves the state of the DropDownList, which otherwise would rebind when the DataSourceChanged event is raised as a result of an Update operation. --> <asp:objectdatasource id="ObjectDataSource2" runat="server" updatemethod="UpdateEmployeeWrapper" onupdating="NorthwindEmployeeUpdating" typename="Samples.AspNet.JSL.EmployeeLogic" /> <p><asp:textbox id="AddressBox" runat="server" /></p> <p><asp:textbox id="CityBox" runat="server" /></p> <p><asp:textbox id="PostalCodeBox" runat="server" /></p> <asp:button id="Button1" runat="server" text="Update Employee" oncommand="Btn_UpdateEmployee" /> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ObjectDataSourceMethodEventArgs.InputParameters プロパティのページへのリンク