21

我正在尝试在运行时向 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之后加载)。

4

2 回答 2

35

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

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

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

就像是:

e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;
于 2008-10-25T13:43:12.647 回答
3

尽早添加;在PreInit活动中。这是初始化的一部分,所以应该在那里完成。

有关详细信息,请参阅ASP.NET 页面生命周期概述

于 2008-10-24T20:49:29.160 回答