2009-04-06 10 views
1

J'utilise un projet d'application Web asp.net et je ne peux accéder aux contrôles asp: content par programmation. J'essaye de mettre à jour son contentplaceID dans le code derrière. Est-ce possible?Définir asp: Contenu par programme

Merci

+0

Etes-vous en train d'essayer de changer le contenu de l'espace réservé ou de modifier l'identifiant de l'espace réservé? – tvanfosson

+0

Im essayant de définir la valeur de la propriété contentplaceholderID sur le contrôle de contenu à partir d'un app Web.config – Shawn

Répondre

0

Non vous ne pouvez pas changer le ContentPlaceHolderID dans votre page de contenu. La raison en est que contentplaceholder est défini dans la page principale et que vous les référencez dans là pour dire dans quel contentplace votre contenu ira.

Les contrôles de contenu sont laissés en arrière et n'existent pas dans la hiérarchie de contrôle. Ce ASP.net thread ici donne un moyen de la façon dont vous pouvez le mettre à jour une autre façon que

+0

Qu'est-ce que vous essayez réellement de faire parce que pour appeler un contrôle Web dans asp.net pour un contrôle, il est le même – TStamper

+0

Définissez la valeur de la propriété contentplaceholderID sur le contrôle de contenu à partir d'un appsetting web.config. – Shawn

+0

le code que vous avez posté ne fonctionne pas – Shawn

3

Bien que vous ne pouvez probablement pas changer ContentPlaceHolderID de votre asp: Table des matières, vous pouvez contrôler le contenu de ContentPlaceHolders directement: accéder à la page principale de la page par sa propriété Master, puis utilisez la fonction FindControl pour trouver ContentPlaceHolder sur la page maître. Après cela, modifiez son contenu via la propriété Controls.

var masterContent = Master.FindControl("largeContent") as ContentPlaceHolder; 
masterContent.Controls.Add(new Literal { Text = "Hello, world!" }); 

Vous pouvez probablement utiliser cette « hack » ajouter un aspic: contrôle Panel à tout ContentPlaceHolder que vous voulez si cela pourrait émuler la fonctionnalité que vous vouliez.

Questions connexes