我正在尝试在运行时向objectDataSource添加参数,如下所示:
Parameter objCustomerParameter = new Parameter("CustomerID",DbType.String,customerID); Parameter objGPDatabaseParameter = new Parameter("Database",gpDatabase); //set up object data source parameters objCustomer.SelectParameters["CustomerID"] = objCustomerParameter; objCustomer.SelectParameters["Database"] = objGPDatabaseParameter;
在ObjectDataSource生命周期的什么时候应该添加这些参数(什么事件)?另外,一些值来自主页属性(在包含objectDataSource的页面的page_load之后加载)。
解决方法
将它们添加到您尝试使用的操作的事件中。例如,如果这些参数是SELECT命令的一部分,则将它们添加到“选择”事件,如果需要使用UPDATE命令,然后将其添加到“更新”事件。
ObjectDataSource在执行每个操作之前会引发一个事件,即可以插入参数(或验证/更改现有参数)。
另外,不要尝试修改ODS本身的参数集合。您要将参数添加到传递给事件处理程序的ObjectDataSourceSelectingEventArgs中。
就像是:
e.InputParameters["CustomerID"] = customerId; e.InputParameters["database"] = dbName;