Question

Je crée d'énormes quantités de contrôles dynamiques et, pour tout ce qui doit avoir un ID attribué, je l'affecte à l'aide d'une variable unique garantie (sauf si 64 bits sont dépassés uniquement par les contrôles).

Maintenant, j'ai un problème cependant. J'ai un contrôle en double quelque part et je ne peux pas savoir où il est ajouté ou quoi que ce soit, car cela ne se produit pas après Page_Load, ce qui signifie que c'est hors de mon propre code lorsqu'une exception est levée ( Je pense à Render ou à une autre fonction interne).

Le nom du contrôle est " ctlXXX " où XXX est un nombre (pour le moment, toujours 244), cet ID de contrôle n'est pas et est créé par moi. Il est créé automatiquement par ASP.Net (aucun de mes identifiants n’ayant le préfixe ctl). Alors, comment puis-je corriger cette erreur que je ne peux pas voir? Quelqu'un peut-il suggérer des moyens de trouver mon erreur (j'espère vraiment que ce n'est pas un bogue dans ASP.Net)?

De plus, j'ai récemment eu l'erreur en utilisant une fonction Copy qui effectuera une copie Memberwise sur un contrôle personnalisé, puis réinitialisera tous les contrôles pour qu'ils aient un ID unique ou qu'ils soient nuls, cette partie se produisant avant les contrôles. sont chargés dans le contrôle personnalisé, qui est un descendant de Panel)

Quelqu'un peut-il me donner des conseils sur la façon de trouver ce bogue?

Était-ce utile?

La solution

Je pense que vous souhaitez consulter le INamingContainer interface. Je pense que cela résoudra votre problème, mais vous devrez dériver une nouvelle classe de contrôle pour le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top