Pergunta

Saudações, espero que não há uma solução simples para este problema complexo. Por favor, corrigir eventuais equívocos que tenho ao longo do caminho. Um tempo atrás eu escrevi um GrivView com capacidade de coluna dinâmica. As colunas são adicionados no evento página OnInit para que eles sejam adicionados antes do viewstate é aplicada. Eles são reaplicadas em cada postagem nesta seção da página de modo que quando o viewstate é alterações aplicadas que o usuário fez e não comprometidos com o banco de dados são mantidos. Ele também é necessário se você não quer que seu árvore de controle viewstate para obter fora de sincronia e explodir tudo.

Meu problema atual é que estou agora a tarefa de fazer essencialmente a mesma coisa onde as colunas serão diferentes com base em uma lista suspensa (I irá recriar o GridView se as alterações DDL, e os usuários perderão todo o trabalho com um Aviso). Como posso obter a ID que está selecionado na lista suspensa no Evento OnInit? Meu entendimento é que quando o usuário muda o valor da ddl no lado do cliente uma chamada de JavaScript “__doPostBack” é acionado. A solicitação de página é então enviada para o servidor, mas pelo tempo que o novo valor está presente no manipulador de eventos Estou além do ponto onde eu preciso adicionar as colunas.

Eu vi algo que eu pensei que estava prometendo quando as pessoas estavam tentando determinar qual o controlo causou um posto de volta, mas que o código se baseia em page.Request.Params.Get ( "__ EVENTTARGET"); e page.Request.Form que estão vazias.

Eu deveria olhar para o estado da sessão, tentar ‘Enviar’ The ID usando a manipulação do lado do cliente, ou algum outro método (Talvez uma maneira sorrateira de olhar no viewstate estou em falta)?

Obrigado por todas as idéias !!!

Foi útil?

Solução

valor enviado de um controle está disponível a partir da coleção Request [], mesmo que pareça que a sua forma ainda não foi reconstruído.

Você deve simplesmente ser capaz de obter o valor selecionado durante Init () usando o seguinte:

string value = Request["myDropDownID"];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top