2009-11-20 4 views
1

J'utilise Register en haut de la page pour enregistrer un contrôle ascx, maintenant la chose est que je veux utiliser ce contrôle deux fois sur la page.en utilisant le même contrôle ascx deux fois lors de l'utilisation Register (ASP.NET)

Maintenant, le problème est que lorsque j'appuie sur les boutons d'une instance du contrôle, elle déclenche la validation des deux contrôles, et elle se casse évidemment, car elle ne devrait valider qu'un seul contrôle - lui-même! La raison pour laquelle je suis sûr de cela est que si je garde seulement une instance du contrôle sur la page, alors ça coule bien. Ce que j'ai déjà essayé NOT travail: 1) Mettre les deux instances dans différents panneaux ASP. 2) Enregistrement du contrôle deux fois en haut de la page, de sorte que chaque enregistrement n'ait qu'une seule instance sur la page.

Je ne voudrais pas modifier la validation du contrôle lui-même, mais c'est un projet énorme et il est utilisé à d'autres endroits, et je ne veux pas perturber d'autres choses. FYI Il utilise "Page.IsValid" pour valider.

Répondre

1

Définissez dynamiquement la propriété ValidationGroup des validateurs et la propriété ValidationGroup des boutons dans la méthode Page_Load du contrôle utilisateur. Vous pouvez utiliser la propriété ID du contrôle utilisateur dans le groupe ValidationGroup pour différencier les deux contrôles.

par exemple

myRequiredValidator.ValidationGroup = "valGroup_" + this.ID; 
myButton.ValidationGroup = "valGroup_" + this.ID; 
Questions connexes