Como faço para configurar o ObjectDataSource selecionar os parâmetros em tempo de execução

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

  •  04-07-2019
  •  | 
  •  

Pergunta

Eu estou tentando adicionar parâmetros a um ObjectDataSource em tempo de execução 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;

Em que ponto do ciclo de vida objectdatasource devem esses parâmetros ser adicionado (o evento)? Além disso, alguns valores são provenientes de uma propriedade página mestra (que carrega após o page_load da página que contém o ObjectDataSource).

Foi útil?

Solução

Adicionar-los para o evento para a operação que está tentando usar. Por exemplo, se esses parâmetros são parte do comando SELECT, em seguida, adicioná-los para o evento Seleção, se eles precisam ir com o comando UPDATE em seguida, adicioná-los no evento Atualização.

O ObjectDataSource gera um evento antes de executar cada operação, que é quando você pode inserir parâmetros (ou validar / alterar parâmetros existentes).

Além disso, não tentar modificar a coleção parâmetros do próprio ODS. Você deseja adicionar os seus parâmetros à ObjectDataSourceSelectingEventArgs que é passado para o manipulador de eventos.

Algo como:

e.InputParameters["CustomerID"] = customerId;
e.InputParameters["database"] = dbName;

Outras dicas

Adicione o mais cedo possível; no evento PreInit. Isso faz parte de inicialização por isso deve ser feito lá.

Veja a ASP.NET página Ciclo de Vida Overview para obter mais informações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top