2010-04-26 3 views
1

J'ai une application d'entreprise convertie de VS2003 à VS2005.Plusieurs contrôles avec le même ID 'xxx' ont été trouvés

L'application convertie, en une seule page je édite et enregistre j'obtiens cette erreur.

System.Web.HttpException: Plusieurs contrôles avec le même ID 'hidWIPID0' ont été trouvés. FindControl requiert que les contrôles aient des ID uniques.

Mais la même chose fonctionne très bien dans le code de la version vs2003 sans aucune erreur.

C'est une application énorme avec les pages maîtres dynamiques et les commandes usb etc. Donc je ne peux pas coller le code exact ici.

Mais l'origine de l'erreur est le contrôle du contenu de la page maître.

par exemple: code de la page MasterPageStrategy: Content ID = "pnlMain"

Erreur

contrôles multiples avec le même ID 'hidWIPID0' ont été trouvés

Afficher la source

MasterPage: pnlMa dans: _ctl2: hidWIPID0

I Support Microsoft il y a un article expliquant le même problème. Mais il s'applique à la version 1.1. J'ai déjà converti le code en version 2.0 et l'erreur apparaît dans le code convertd.

http://support.microsoft.com/kb/834608

quelqu'un s'il vous plaît examiner cette question et me fournir une solution car il est très urgent.

Merci SNA

Répondre

2

Le problème est exactement ce que l'exception vous dit. Dans votre arborescence de pages/pages, il y a plusieurs contrôles avec le même ID. Dans .NET 2.0, et d'autres versions, cela n'est pas autorisé.

Je suggère de faire une recherche dans les pages maîtres et les pages utilisées pour construire la page que vous demandez et de renommer l'un des contrôles qui ont le même ID. Cependant, puisque vous avez une énorme application avec plusieurs pages principales dynamiques et héritées, je pense que vous allez tomber sur le même problème plusieurs fois. Peut-être que vous devriez passer à la version 4.0 de l'infrastructure .NET?

Dans 4.0, vous pouvez spécifier le 'clientIDMode'. En savoir plus sur ceci: http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

Modifier Tout en pensant à ce sujet, il n'a pas de sens. Lorsque vous avez plusieurs pages maîtres et des espaces de contenu, les contrôles obtiennent un préfixe unique. Il me semble que vous avez une sorte de répéteur dans une page qui cause ce problème.

+0

Vous êtes true.L'origine du problème provient des tables générées dynamiquement (en ce moment 3) ajoutées sur un espace réservé. La ligne d'en-tête de chaque table possède un contrôle masqué. – SNA

+0

Ensuite, vous devez donner aux tables générées dynamiquement un ID unique d'une manière ou d'une autre. Content que je puisse t'aider. – Joop

+0

En fait, il existe une logique écrite pour uniquid de craquage, mais en quelque sorte la duplication des tables se produit dans le code. En fait, une seule table doit exister. Merci beaucoup. Votre réponse m'aide à réfléchir et à aborder le problème. – SNA

Questions connexes