2010-08-16 4 views
0

Je suis en train d'écrire un webpart et ai essayé de mettre à jour le titre du navigateur ... donc, je suis entré dans mywebpart.ascx ajouté ce qui suit:Comment définir un contrôle de contenu par le code C#

<asp:Content ID="contentPageTitle" ContentPlaceholderID="PlaceHolderPageTitle" runat="server"> 
    <%= SPContext.Current.Site.OpenWeb().Title %> 
</asp:Content> 

Je suis alors cette erreur: Les contrôles de contenu doivent être des contrôles de niveau supérieur dans une page de contenu ou une page maître imbriquée faisant référence à une page maître.

Donc, je suis en train de le faire dans programatically mywebpart.cs en faisant:

Content content = new Content(); 
content.ContentPlaceHolderID = "PlaceHolderPageTitle"; 

J'ai besoin maintenant d'entrer cette pièce. SPContext.Current.Site.OpenWeb() Titre

Quelle propriété dans le contrôle de contenu me permet de faire cela? S'il y a une meilleure façon de le faire, je suis ouvert aussi. Merci.

Répondre

0

Malheureusement, vous ne pouvez pas placer un contrôle de contenu dans un contrôle utilisateur. Comme le message d'erreur l'indique, les contrôles de contenu doivent être des contrôles de niveau supérieur dans une page ou une page maître et ne peuvent appartenir à aucun autre type de contrôle.

Une autre approche pourrait être de personnaliser votre mise en page ou votre page maître pour qu'elle contienne la logique que vous voulez fournir.

Si vous avez une certaine assurance de l'ID du contrôle de contenu (pas le ContentPlaceHolderID, vous l'esprit), alors vous pouvez interagir avec le contrôle de contenu comme ceci:

var content = Page.FindControl("contentPageTitle"); 
content.Controls.Add(new LiteralControl("Hello, World!")); 

-

sur a part, assurez-vous que tout SPWeb ouvert avec OpenWeb() est éliminé correctement, sinon vous risquez de rencontrer des problèmes de gestion de la mémoire plus tard.

+0

Merci pour la friandise. Sur la note de côté, dois-je disposer de tous les objets SPWeb? J'utilise habituellement "Using", mais puisque nous sommes sur le sujet, pouvez-vous me conseiller sur les objets dont je devrais disposer? – Josh

+0

Voici quelques directives pour la mise au rebut de SPWeb. Je recommande également d'utiliser SPDisposeCheck sur votre code. http://blogs.technet.com/b/stefan_gossner/archive/2008/12/05/disposing-spweb-and-spsite-objects.aspx – kbrimington

Questions connexes