Pergunta

É possível obter uma lista de eventos de controle que estão indo para o fogo antes que eles aconteçam, dizer dentro do manipulador Page_Load?

Por exemplo, se um botão foi clicado eu posso descobrir isso antes que o manipulador de eventos button_click é chamado?

Foi útil?

Solução

Você escolheu uma pergunta muito difícil ... a razão para isso é que existem várias maneiras que os eventos dispara.

1) __EVENTTARGET (como mencionado acima) 2) Se o nome do seu botão é MyButt, então você verá "MyButt =" na cadeia de consulta. 3) Quando cada controle (como, uma caixa de texto, por exemplo) verifica a solicitação para ver se ele de valor no ViewState é diferente do publicado, em seguida, um "Text_Changed" irá disparar.

Mas, você pode usar # 1 e # 2 para verificar alguns lugares.

Outras dicas

Infelizmente, interrogando o valor __EVENTTARGET não vai fazer o truque. Muitas vezes, esse valor estará vazia. O processamento postback faz algumas decisões sobre quais eventos para arrecadar baseado em mais do que apenas o valor-alvo do evento (se houver) testando valores de estado de controle contra os valores lançados pela forma (como para uma caixa de texto) determina se eventos como TextChanged deve ser levantada .

Além de realmente ligar um manipulador de eventos para todos os controles que você deseja eventos de captura para, eu não acho que há alguma maneira de determinar isso. Pode ser possível fazer basicamente o que a estrutura faz embora. Você precisará fazê-lo entre quando os controles foram criados e viewstate foi restaurada, mas antes que os valores lançados são processados. Você pode comparar os valores atuais de controle (do viewstate) com os valores lançados, essencialmente determinar quais eventos faria fogo.

O que é o seu objetivo com isso? Talvez haja uma solução melhor.

A seguir contém o id mutilado por um botão quando clicado.

Page.Request.Form["__EVENTTARGET"]

Aqui está um exemplo que eu acredito que responde a sua questão.

Outra forma seria apenas para definir alguns pontos de interrupção quando a depuração.

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