如何在运行时设置ObjectDataSource选择参数

The*_*tan 21 asp.net 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;
Run Code Online (Sandbox Code Playgroud)

在objectDataSource生命周期的什么时候应该添加这些参数(什么事件)?此外,某些值来自母版页属性(包含objectDataSource的页面的page_load 之后加载).

小智 34

将它们添加到您尝试使用的操作的事件中.例如,如果这些参数是SELECT命令的一部分,则将它们添加到Selecting事件中,如果它们需要使用UPDATE命令,则将它们添加到Updating事件上.

ObjectDataSource在执行每个操作之前引发一个事件,即当您可以插入参数(或验证/更改现有参数)时.

另外,不要尝试修改ODS本身的参数集合.您希望将参数添加到传递给事件处理程序的ObjectDataSourceSelectingEventArgs.

就像是:

e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;
Run Code Online (Sandbox Code Playgroud)