2009-10-02 2 views
0

Je suis en train d'ajouter un contrôle que je définis en C# à mon code asp, en faisant cela dans mon code:Le TargetControlID n'est pas valide/l'ajout d'un contrôle à un formulaire dans le code asp.net

<% this.Controls.Add(blah.GetControl()); %> 

mais j'obtiens l'erreur: le TargetControlID de 'a8f08c40d0fab104ca20b1460ee1cbdd1e121' n'est pas valide. La valeur ne peut pas être nulle ou vide.

C'est le GUID des contrôles que je génère de manière aléatoire dans la méthode get.

Aucune explication quant à pourquoi je l'obtiens? Est-ce que ce que je fais même autorisé - mettre ce code ci-dessus dans mon fichier aspx?

Edit: Code supplémentaire pour le nouveau problème ID:

. 
. 
    <div id="divDetailsContent" style="width:100%"> 
. 
. 
<% this.Controls.Add(blah.GetControl("divDetailsContent")); %> 
. 
. 
public static blah GetControl(n) 
{ 
. 
. 
blah.TargetID = n; 
. 
. 
} 

Répondre

1

dans blah.GetControl() vous instancier un contrôle avec 'a8f08c40d0fab104ca20b1460ee1cbdd1e121' ID. Ce contrôle est d'un type qui a une propriété TargetControlID comme par exemple le contrôle Accordion. Vous aurez donc besoin de définir ce TargetControlID à un id valide d'un contrôle aussi bien dans le GetControl. Donc, définissez ID et TargetontrolID.

mise à jour: vous pouvez obtenir l'ID avec la propriété ClientID. Cela contient l'ID complet tel qu'il est rendu dans le code HTML.

+0

Vous êtes absolument 100% correct merci! Le problème que j'ai maintenant est que mon contrôle cible est un div avec un ID, et mettre l'ID de la div ne fonctionne pas, probablement parce que l'ID réel de la div n'est pas celui que j'ai défini dans le code, mais quelque chose comme "ct100 $ MyDivName ". Savez-vous comment je peux utiliser un div comme cible? Avant de générer dynamiquement le contrôle, la cible était une div et cela a bien fonctionné. – NibblyPig

+0

Je ne sais pas comment ... Taper l'identifiant div et un point ne génère pas d'intellisense car ce n'est pas un contrôle d'asp. – NibblyPig

+0

A été manquant un runat = serveur de ma division ... Le TargetControlID de 'aab822f2d0cace04' n'est pas valide. Un contrôle avec l'ID 'ctl00_MainContentPlaceHolder_divDetailsContent' n'a pas pu être trouvé. ClientID ne semble pas fonctionner cependant. – NibblyPig

Questions connexes