2010-07-20 6 views
1

J'ai créé un composant WebPart SharePoint dont les propriétés personnalisées peuvent être configurées par l'utilisateur. Cependant, ils ne s'appliquent qu'à cette instance de la partie Web. Comment est-ce que je pourrais fournir à l'utilisateur une place pour permettre à l'utilisateur de placer des propriétés qui s'appliqueraient à chaque instance de la partie Web?Autoriser la configuration globale d'un composant WebPart SharePoint

(Je suis nouveau au développement de SharePoint et je suis en utilisant WSPBuilder pour créer une partie Web avec une fonctionnalité et le déployer.)

Répondre

2

Vous pouvez utiliser le sac de propriété de RootWeb de SPSite (ou, pour le rendre spécifique à SPWeb, le SPWeb actuel) pour stocker les paramètres globaux de ce composant WebPart (dans cette collection de sites spécifique). Créez une page LAYOUTS pour autoriser la modification de ces paramètres si la collection de sites est étendue, utilisez RunWithElevatedPrivileges pour stocker les propriétés dans la pochette de propriétés d'un SPWeb.

+0

+1 - Voir cette réponse pour plus d'informations, y compris la "configuration hiérarchique Manager" qui fait partie de la production prête MS Guidance Library http: // stackoverflow. com/questions/3008473/quoi-est-un-moyen-de-stocker-site-niveau-global-variables-dans-un-sharepoint-site/3014277 # 3014277 – Ryan

0

Il a été un peu depuis je SharePoint ... la première chose que je try est de créer une liste dont les enregistrements sont les paramètres que vous voulez transmettre à la partie web, et de la configurer pour que les utilisateurs puissent uniquement voir/modifier leur propre enregistrement. Mises en garde: cela peut être difficile si vous voulez faire apparaître dynamiquement des enregistrements à chaque fois qu'un nouvel utilisateur s'enregistre. Et aussi, les listes sont "locales" sur le site, donc vous ne pouvez pas avoir une seule liste qui est vue à partir de parties de différents sites. (Ou du moins c'est comme ça que ça a marché dans SP 2007). En fonction du nombre de paramètres que vous devez configurer correctement la partie Web, vous pouvez également jouer avec des «champs» personnalisés dans le profil utilisateur, mais ce n'est pas très robuste et serait probablement excessif.

1

Essayez un membre statique, par exemple:

[WebBrowsable(false), Personalizable(PersonalizationScope.Shared)] 
public string configSetting 
{ 
    get { return _configSetting; } 
    set { _configSetting = value; } 
} 
private static string _configSetting; 
Questions connexes