Come posso impostare i parametri di selezione ObjectDataSource in fase di esecuzione

StackOverflow https://stackoverflow.com/questions/235166

  •  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).

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top