2008-10-28 4 views

Répondre

2

Vous avez choisi une question vraiment difficile ... la raison en est qu'il y a plusieurs façons dont les événements vont se déclencher.

1) __EVENTTARGET (comme mentionné ci-dessus) 2) Si le nom de votre bouton est MyButt, alors vous verrez "MyButt =" dans la chaîne de requête. 3) Lorsque chaque contrôle (par exemple, un TextBox par exemple) vérifie la requête pour voir si sa valeur dans ViewState est différente de celle affichée, alors un "Text_Changed" se déclenchera. Mais, vous pouvez utiliser # 1, et # 2 pour vérifier quelques endroits.

0

Ce qui suit contient l'ID tronqué pour un bouton lorsque vous cliquez dessus.

Page.Request.Form["__EVENTTARGET"] 
0

Here is an example Je crois que cela répond à votre question.

Une autre façon serait de définir quelques points d'arrêt lors du débogage.

2

Malheureusement, l'interrogation de la valeur __EVENTTARGET ne fera pas l'affaire. Souvent, cette valeur sera vide. Le traitement de postback prend certaines décisions sur les événements à déclencher en fonction de la valeur cible de l'événement (le cas échéant) tester les valeurs d'état de contrôle par rapport aux valeurs affichées par le formulaire (comme une zone de texte) détermine si des événements tels que TextChanged .

En plus de raccorder un gestionnaire d'événements à toutes les commandes pour lesquelles vous souhaitez capturer des événements, je ne pense pas qu'il existe un moyen de le déterminer. Il pourrait être possible de faire fondamentalement ce que le cadre fait bien. Vous devez le faire entre la création des contrôles et la restauration de viewstate mais avant le traitement des valeurs validées. Vous pouvez comparer les valeurs de contrôle actuelles (à partir de viewstate) avec les valeurs affichées, en déterminant essentiellement les événements feu.

Quel est votre objectif avec ceci? Peut-être y a-t-il une meilleure solution.

Questions connexes