Comment configurer les paramètres de sélection ObjectDataSource au moment de l'exécution
-
04-07-2019 - |
Question
J'essaie d'ajouter des paramètres à un objet objectDataSource lors de l'exécution, comme ceci:
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;
À quel moment du cycle de vie d’objectDataSource ces paramètres doivent-ils être ajoutés (quel événement)? De plus, certaines valeurs proviennent d'une propriété de page maître (qui charge après le chargement de page de la page contenant l'objet objectDataSource).
La solution
Ajoutez-les à l'événement pour l'opération que vous essayez d'utiliser. Par exemple, si ces paramètres font partie de la commande SELECT, ajoutez-les à l'événement Selecting, s'ils doivent utiliser la commande UPDATE, puis ajoutez-les à l'événement Updating.
ObjectDataSource déclenche un événement avant d'effectuer chaque opération. Vous pouvez alors insérer des paramètres (ou valider / modifier des paramètres existants).
De plus, n'essayez pas de modifier la collection de paramètres de l'ODS elle-même. Vous souhaitez ajouter vos paramètres à l'objet ObjectDataSourceSelectingEventArgs transmis au gestionnaire d'événements.
Quelque chose comme:
e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;
Autres conseils
Ajoutez le plus tôt possible. lors de l'événement PreInit
. Cela fait partie de l’initialisation et devrait donc être fait ici.
Voir Présentation du cycle de vie d'une page ASP.NET pour plus d'informations. informations.