Как настроить параметры выбора ObjectDataSource во время выполнения - PullRequest
21 голосов
/ 25 октября 2008

Я пытаюсь добавить параметры в 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 эти параметры должны быть добавлены (какое событие)? Кроме того, некоторые значения поступают из свойства главной страницы (которое загружает после page_load страницы, содержащей objectDataSource).

Ответы [ 2 ]

34 голосов
/ 25 октября 2008

Добавьте их в событие для операции, которую вы пытаетесь использовать. Например, если эти параметры являются частью команды SELECT, добавьте их в событие Selecting, если они должны идти с командой UPDATE, добавьте их в событие Updating.

ObjectDataSource вызывает событие перед выполнением каждой операции, тогда вы можете вставить параметры (или проверить / изменить существующие параметры).

Кроме того, не пытайтесь изменить коллекцию параметров самой ODS. Вы хотите добавить свои параметры в ObjectDataSourceSelectingEventArgs, который передается в обработчик событий.

Что-то вроде:

e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;
3 голосов
/ 25 октября 2008

Добавить как можно раньше; на мероприятии PreInit. Это часть инициализации, так что следует сделать там.

Для получения дополнительной информации см. Обзор жизненного цикла страницы ASP.NET .

...