¿Cómo configuro los parámetros de selección de ObjectDataSource en el tiempo de ejecución?
-
04-07-2019 - |
Pregunta
Estoy intentando agregar parámetros a un objectDataSource en tiempo de ejecución como este:
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;
¿En qué punto del ciclo de vida de objectDataSource deberían agregarse estos parámetros (qué evento)? Además, algunos valores provienen de una propiedad de página maestra (que carga después de la carga de página de la página que contiene el objectDataSource).
Solución
Agréguelos al evento para la operación que está intentando usar. Por ejemplo, si estos parámetros forman parte del comando SELECCIONAR, luego agréguelos al evento de Selección, si necesitan ir con el comando ACTUALIZACIÓN, agréguelos al evento de Actualización.
El ObjectDataSource genera un evento antes de realizar cada operación, que es cuando puede insertar parámetros (o validar / modificar parámetros existentes).
Además, no intente modificar la colección de parámetros del ODS en sí. Desea agregar sus parámetros al ObjectDataSourceSelectingEventArgs que se pasa al controlador de eventos.
Algo así como:
e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;
Otros consejos
Agregue lo antes posible; en el evento PreInit
. Esto es parte de la inicialización, por lo que debe hacerse allí.
Consulte la Descripción general del ciclo de vida de la página ASP.NET para obtener más información información.