La structure interne ainsi que le design d'AreaProg ont récemment été modifiés.
Suite à cela, le format de certains articles a été perturbé. Le problème est connu et en cours de résolution. Merci de votre compréhension.
if (SPContext.Current.FormContext.FormMode == SPControlMode.Edit)Pour exemple voici le code d’une webpart contenant 2 chaines de caractères, une à afficher tout le temps et une à n'afficher qu’en mode édition.
protected override void CreateChildControls()
{
string contenuPasSecret = "Je m'appelle Christopher.";
string contenuSecret = "J'ai 26 ans.";
Controls.Add(new LiteralControl(contenuPasSecret));
if (SPContext.Current.FormContext.FormMode == SPControlMode.Edit)
Controls.Add(new LiteralControl(contenuSecret));
}
Comme vous pouvez le constater sur la capture qui suit, seule la première chaine de caractères est affichée.
Quand nous passons en mode édition les 2 chaines sont affichées.
Le souci c’est que lorsque j’ai voulu utiliser cette WebPart sur un « Team site » j’ai eu la surprise de voir qu’en mode édition, une seule chaine de caractère s’affichait !
Après un petit coup de debug j’ai vu que l’erreur venait de la valeur récupérée par le SPContext.Current.FormContext.FormMode , au lieu de me renvoyer « Edit » il me renvoyait « Invalid »
L’astuce pour que cela fonctionne sur les « team site » consiste a récupérer la valeur via le WebPartManager de la page courante.
Pour cela modifions notre code pour qu’il ressemble à ceci.
WebPartManager wpm = WebPartManager.GetCurrentWebPartManager(Page);
string contenuPasSecret = "Je m'appelle Christopher.";
string contenuSecret = "J'ai 26 ans.";
Controls.Add(new LiteralControl(contenuPasSecret));
if ((SPContext.Current.FormContext.FormMode == SPControlMode.Edit)|| (wpm.DisplayMode.Name.Equals("Design")))
Controls.Add(new LiteralControl(contenuSecret));
Maintenant plus de problèmes, notre chaine de caractères « privée » est affichée seulement en édition et sur les 2 types de site.
Veuillez vous identifier ou vous inscrire pour donner une note à cet article.
Aucun commentaire.
Veuillez vous identifier ou vous inscrire pour réagir à cet article.