Как настроить параметры выбора объекта 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 должны быть добавлены эти параметры (какое событие)? Кроме того, некоторые значения поступают из свойства главной страницы (которое загружается после page_load страницы, содержащей объект objectDataSource).
Ответы
Ответ 1
Добавьте их в событие для операции, которую вы пытаетесь использовать. Например, если эти параметры являются частью команды SELECT, добавьте их в событие "Выбор", если им нужно перейти с командой UPDATE, а затем добавить их в событие "Обновление".
ObjectDataSource вызывает событие перед выполнением каждой операции, когда вы можете вставлять параметры (или проверять/изменять существующие параметры).
Кроме того, не пытайтесь модифицировать набор параметров самого ODS. Вы хотите добавить свои параметры в ObjectDataSourceSelectingEventArgs, который передается обработчику событий.
Что-то вроде:
e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;
Ответ 2
Добавить как можно раньше; в событии PreInit
. Это часть инициализации, поэтому ее следует делать.
Подробнее см. Обзор жизненного цикла страницы ASP.NET.