Come posso impostare i parametri di selezione ObjectDataSource in fase di esecuzione
-
04-07-2019 - |
Domanda
Sto provando ad aggiungere parametri a objectDataSource in fase di esecuzione in questo modo:
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;
In quale punto del ciclo di vita objectDataSource devono essere aggiunti questi parametri (quale evento)? Inoltre, alcuni valori provengono da una proprietà della pagina principale (che carica dopo il page_load della pagina che contiene objectDataSource).
Soluzione
Aggiungili all'evento per l'operazione che stai tentando di utilizzare. Ad esempio, se questi parametri fanno parte del comando SELECT, quindi aggiungerli all'evento Selecting, se devono andare con il comando UPDATE, quindi aggiungerli all'evento Aggiornamento.
ObjectDataSource genera un evento prima di eseguire ciascuna operazione, in quel momento è possibile inserire parametri (o convalidare / modificare parametri esistenti).
Inoltre, non provare a modificare la raccolta dei parametri dell'ODS stesso. Si desidera aggiungere i parametri a ObjectDataSourceSelectingEventArgs che viene passato al gestore eventi.
Qualcosa del tipo:
e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;
Altri suggerimenti
Aggiungi il prima possibile; all'evento PreInit
. Questo fa parte dell'inizializzazione, quindi dovrebbe essere fatto lì.
Consulta la Panoramica del ciclo di vita della pagina ASP.NET per ulteriori informazioni informazioni.