web-dev-qa-db-ja.com

実行時にObjectDataSource選択パラメーターを設定するにはどうすればよいですか

次のように、実行時にobjectDataSourceにパラメーターを追加しようとしています。

        Parameter objCustomerParameter = new Parameter("CustomerID", DbType.String, customerID);
        Parameter objGPDatabaseParameter = new Parameter("Database", DbType.String, gpDatabase);

        //set up object data source parameters
        objCustomer.SelectParameters["CustomerID"] = objCustomerParameter;
        objCustomer.SelectParameters["Database"] = objGPDatabaseParameter;

ObjectDataSourceライフサイクルのどの時点でこれらのパラメーターを追加する必要がありますか(どのイベント)?また、一部の値はマスターページプロパティ(objectDataSourceを含むページのpage_loadをロードしますafter)から取得されます。

使用しようとしている操作のイベントにそれらを追加します。たとえば、これらのパラメーターがSELECTコマンドの一部である場合は、それらをSelectingイベントに追加し、UPDATEコマンドを使用する必要がある場合は、それらをUpdateingイベントに追加します。

ObjectDataSourceは、各操作を実行する前にイベントを発生させます。そのときに、パラメーターを挿入(または既存のパラメーターを検証/変更)できます。

また、ODS自体のパラメータコレクションを変更しようとしないでください。イベントハンドラーに渡されるObjectDataSourceSelectingEventArgsにパラメーターを追加します。

何かのようなもの:

e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;
34
Andy C.

できるだけ早く追加してください。 PreInitイベントで。これは初期化の一部なので、そこで行う必要があります。

詳細については、 ASP.NETページのライフサイクルの概要 を参照してください。

3
wprl