tag:blogger.com,1999:blog-25236060980312211062024-03-13T10:24:15.340-07:00ZEMZEMI AmineExpert SharePoint 2013, 2010 et 2007.
Pour plus d'informations, veuillez me contacter à l'adresse suivante : amine.zemzemi@devcollab.frZEMZEMI Aminehttp://www.blogger.com/profile/03616409187566730746noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-2523606098031221106.post-66601104945830220332014-05-21T07:32:00.000-07:002014-06-05T07:05:50.177-07:00Expert SharePoint Freelance Paris - IDF<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Georgia, Times New Roman, serif;">Bonjour,</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br />Je suis expert SharePoint avec plusieurs années d'expérience.</span><br />
<br />
<span style="font-family: Georgia, Times New Roman, serif;">Voici mes domaines de compétences :</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<br />
<div style="text-align: left;">
<span style="font-family: Georgia, Times New Roman, serif;"><span style="background-color: white; color: #262626; line-height: 15px;">- Etudes, Mise en place & Développement de portails d’entreprises (Intranet, Extranet, Internet, GED, Moteur de recherche, etc.). </span></span></div>
<span style="font-family: Georgia, Times New Roman, serif;"><span style="background-color: white; color: #262626; line-height: 15px;">- Consulting, Coaching & Formation autour de SharePoint.</span><span style="background-color: white; color: #262626; line-height: 15px;">- Intégration de la suite MS BI dans SharePoint (SSRS, SSAS, Excel Services, PowerPivot et PowerView).</span></span><br />
<br />
<br />
<span style="font-family: Georgia, 'Times New Roman', serif;">Pour toute information, n'hésitez pas à me contacter par mail à l'adresse suivante amine.zemzemi@devcollab.fr.</span></div>
ZEMZEMI Aminehttp://www.blogger.com/profile/03616409187566730746noreply@blogger.comParis, France48.856614 2.352221900000017748.6894645 2.0294984000000178 49.0237635 2.6749454000000177tag:blogger.com,1999:blog-2523606098031221106.post-86878148116624458232012-01-03T09:25:00.000-08:002012-01-03T09:27:28.334-08:00Accéder aux données SharePoint avec REST & JSON<div dir="ltr" style="text-align: left;" trbidi="on"><h6 class="uiStreamMessage" data-ft="{"type":1}"><span class="messageBody" data-ft="{"type":3}" style="font-size: large;">La sortie de mon article technique sur REST & JSON avec SharePoint 2010 dans le numéro de Janvier du magazine Programmez. </span></h6><h6 class="uiStreamMessage" data-ft="{"type":1}"><span class="messageBody" data-ft="{"type":3}" style="font-size: small;"><a href="http://www.programmez.com/magazine_articles.php?titre=Acceder-aux-donnees-SharePoint-avec-REST-&-JSON&id_article=1632&magazine=148" target="_blank">http://www.programmez.com/magazine_articles.php?titre=Acceder-aux-donnees-SharePoint-avec-REST-&-JSON&id_article=1632&magazine=148</a></span></h6><h6 class="uiStreamMessage" data-ft="{"type":1}"><span class="messageBody" data-ft="{"type":3}"> </span></h6></div>ZEMZEMI Aminehttp://www.blogger.com/profile/03616409187566730746noreply@blogger.com1tag:blogger.com,1999:blog-2523606098031221106.post-19845190383815588632011-06-27T03:03:00.000-07:002011-06-28T01:02:59.129-07:00Développer une WebPart de contenu avec une zone de texte riche<div dir="ltr" style="text-align: left;" trbidi="on"><h1 style="margin: 24pt 0cm 0pt;"><span style="font-size: large;"><span style="color: #365f91;"><span style="font-family: Cambria;"><div style="border-bottom: #4f81bd 1pt solid; border-left: medium none; border-right: medium none; border-top: medium none; mso-border-bottom-themecolor: accent1; mso-element: para-border-div; padding-bottom: 4pt; padding-left: 0cm; padding-right: 0cm; padding-top: 0cm;"><div class="Style1" style="margin: 0cm 0cm 15pt;"><span style="color: #17365d;">Développer une WebPart de contenu avec une zone de texte riche</span></div></div></span></span></span></h1><h1 style="margin: 24pt 0cm 0pt;"><span style="font-size: large;"><span style="color: #365f91;"><span style="font-family: Cambria;">Introduction : </span></span></span></h1><h1 style="margin: 24pt 0cm 0pt;"><span style="font-size: large;"><span style="color: #365f91;"><span style="font-family: Cambria;"><a href="http://2.bp.blogspot.com/-xP9CilM11Oc/TghRixJzSDI/AAAAAAAAACg/uIz3Oxs_7_0/s1600/img1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" i$="true" src="http://2.bp.blogspot.com/-xP9CilM11Oc/TghRixJzSDI/AAAAAAAAACg/uIz3Oxs_7_0/s1600/img1.png" /></a></span></span></span></h1><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify; text-indent: 35.4pt;"><br />
<span style="font-family: Calibri;">Les WebParts de contenu existent nativement dans SharePoint 2010. Ce genre de Web Part permet d’insérer des textes riches avec une mise en style très facile à utiliser. </span><br />
<br />
<span style="font-family: Calibri;">Toutefois, dans certains cas nous sommes amenés à développer une Web Part qui simule le même fonctionnement. En effet, j’ai eu récemment ce genre de problématique dont le besoin était légèrement différent de la WebPart par défaut de SharePoint. Le besoin du client consistait à développer une Web Part qui contient une zone de texte riche avec quelques champs. Par conséquent le développement était nécessaire !</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: left; text-indent: 35.4pt;"><span style="font-family: Calibri;"><a href="http://3.bp.blogspot.com/-LyxvTW0awsA/TghRZDPeoRI/AAAAAAAAACE/nC1f2iC7jtw/s1600/img2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" i$="true" src="http://3.bp.blogspot.com/-LyxvTW0awsA/TghRZDPeoRI/AAAAAAAAACE/nC1f2iC7jtw/s1600/img2.png" /></a></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-indent: 35.4pt;"><span style="font-family: Calibri;">A travers cet article, nous allons voir ensemble comment développer une Web Part avec une zone de texte riche.</span></div><h1 style="margin: 24pt 0cm 0pt;"><span style="font-size: large;"><span style="color: #365f91;"><span style="font-family: Cambria;">Votre projet sous Visual Studio :</span></span></span></h1><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-indent: 18pt;"><span style="font-family: Calibri;"> L’une des nouveautés de SharePoint 2010 est le Visual Web Part. Dans ce projet, nous allons utiliser ce type de composant que le nous déployons dans notre ferme SharePoint. Pour se faire :</span></div><div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: Calibri;">Allez dans Visual studio 2010.</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: Calibri;">Créez un projet SharePoint vide.</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: Calibri;">Choisissez le déploiement « Farm solution » et mentionnez votre site.</span></div><div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: Calibri;">Ajoutez <span style="mso-spacerun: yes;"> </span>une solution de type « Visual Web Part » et renommez-la en « VisualWebPart_ContentEditor ».</span></div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-LyxvTW0awsA/TghRZDPeoRI/AAAAAAAAACE/nC1f2iC7jtw/s1600/img2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-sGC-dkm60sQ/TghRZi2Mm5I/AAAAAAAAACI/vnVeq-bHuCg/s1600/img3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" i$="true" src="http://2.bp.blogspot.com/-sGC-dkm60sQ/TghRZi2Mm5I/AAAAAAAAACI/vnVeq-bHuCg/s1600/img3.png" /></a></div><div class="MsoListParagraph" style="margin: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: Calibri;">Cliquez F5 pour déployer la solution dans SharePoint 2010.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-indent: 35.4pt;"><span style="font-family: Calibri;">Une fois le déploiement effectué, votre nouvelle Web Part est ajoutée à la liste des WebParts proposées dans le ruban. Par défaut, le groupe d’appartenance est « Custom ». Vous pouvez changer ce dernier via le fichier « Elements.xml » :</span></div><div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> <</span><span lang="EN-GB" style="color: #a31515; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Property</span><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> </span><span lang="EN-GB" style="color: red; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Name</span><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">=</span><span lang="EN-GB" style="color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">"</span><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Group</span><span lang="EN-GB" style="color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">"</span><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> </span><span lang="EN-GB" style="color: red; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Value</span><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">=</span><span lang="EN-GB" style="color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">"</span><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Custom</span><span lang="EN-GB" style="color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">"</span><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> /></span><span lang="EN-GB" style="color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"></span></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-yPItaretq60/TghRatz9s5I/AAAAAAAAACM/B0nNwFC9ZiU/s1600/img4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" i$="true" src="http://2.bp.blogspot.com/-yPItaretq60/TghRatz9s5I/AAAAAAAAACM/B0nNwFC9ZiU/s1600/img4.png" /></a></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Voici le rendu final de la Visual Web Part (Mode visualisation) :</span></div><br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" i$="true" src="http://3.bp.blogspot.com/-FjNkOkwLEns/TghRb41Bm4I/AAAAAAAAACQ/cNTqvE4VWhI/s1600/img5.png" /></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify; text-indent: 35.4pt;"><span style="font-family: Calibri;">En mode édition, l’utilisateur doit avoir une zone de texte pour saisir son contenu. En plus, les onglets « Editing Tools », « Page Tools » et « Web Part Tools » doivent être activés lorsque vous cliquer sur « Click here to Edit ».</span></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-MH14g7oE9D8/TghRcvX5Q2I/AAAAAAAAACU/RAktcxUJ4wU/s1600/img6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" i$="true" src="http://4.bp.blogspot.com/-MH14g7oE9D8/TghRcvX5Q2I/AAAAAAAAACU/RAktcxUJ4wU/s640/img6.png" width="640" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-_jqMo84NdaU/TghRdtNgfuI/AAAAAAAAACY/gei8mYBNByc/s1600/img7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" i$="true" src="http://3.bp.blogspot.com/-_jqMo84NdaU/TghRdtNgfuI/AAAAAAAAACY/gei8mYBNByc/s1600/img7.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">Voici ce que nous allons coder ensemble :</span></div><div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18pt;"><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: Calibri;">Une zone de texte en mode Edit pour la saisie avec un contour en bleue.</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18pt;"><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: Calibri;">Activation des onglets d’édition de SharePoint dans le ruban.</span></div><div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18pt;"><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">-</span><span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: Calibri;">Une zone de texte en mode Display pour afficher le texte saisi.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">Nous allons commencer tout d’abord par le fichier cs de la Web Part. Insérez ces lignes de code dans « VisualWebPart_ContentEditor.cs »</span></div><br />
<pre class="brush: c-sharp">using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
namespace WebPartContentEditor.VisualWebPart_ContentEditor
{
[ToolboxItemAttribute(false)]
public class VisualWebPart_ContentEditor : System.Web.UI.WebControls.WebParts.WebPart
{
// Visual Studio might automatically update this path when you change the Visual Web Part project item.
private const string _ascxPath = @"~/_CONTROLTEMPLATES/WebPartContentEditor/VisualWebPart_ContentEditor/VisualWebPart_ContentEditorUserControl.ascx";
//Méthode à supprimer
//protected override void CreateChildControls()
//{
// Control control = Page.LoadControl(_ascxPath);
// Controls.Add(control);
//}
// Variable globale pour stocker le contenu de la zone de texte
private string _content;
// Propriété de la webpart
[Personalizable()]
public string Content
{
get
{
return this._content;
}
set
{
_content = value;
}
}
protected override void OnInit(EventArgs e)
{
//Afficher la webpart sans titre et sans cadre
this.ChromeType = PartChromeType.None;
//webpart exportable : utile pour voir la valeur de la propriété "Content" de la webpart
this.ExportMode = WebPartExportMode.All;
//Charger le user control
VisualWebPart_ContentEditorUserControl _control = (VisualWebPart_ContentEditorUserControl)Page.LoadControl(_ascxPath);
Controls.Add(_control);
}
/// <summary>
/// Méthode qui permet de sauvegarder la propriété de la webpart
/// </summary>
/// <param name="strUpdatedContent" /></param>public void SavePoperty(string strUpdatedContent)
{
if ((strUpdatedContent != null) && (this.Content != strUpdatedContent))
{
this.Content = strUpdatedContent;
try
{
SPWebPartManager currentWebPartManager = (SPWebPartManager)WebPartManager.GetCurrentWebPartManager(this.Page);
Guid storageKey = currentWebPartManager.GetStorageKey(this);
currentWebPartManager.SaveChanges(storageKey);
}
catch (Exception exception)
{
Label child = new Label();
child.Text = exception.Message;
this.Controls.Add(child);
}
}
}
}
}
</pre><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">Maintenant, allez dans le User Control et modifiez « .ascx » pour insérer ces lignes de code :</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;"><</span><span lang="EN-GB" style="color: maroon; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;">div</span><span lang="EN-GB" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;"> <span style="color: red;">id</span><span style="color: blue;">="divEmptyPanel"</span> <span style="color: red;">runat</span><span style="color: blue;">="server"></</span><span style="color: maroon;">div</span><span style="color: blue;">></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;"><</span><span lang="EN-GB" style="color: maroon; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;">div</span><span lang="EN-GB" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;"> <span style="color: red;">id</span><span style="color: blue;">="divDisplayTexte"</span> <span style="color: red;">runat</span><span style="color: blue;">="server"></</span><span style="color: maroon;">div</span><span style="color: blue;">></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: blue; font-family: Consolas; font-size: 9.5pt;"><</span><span style="color: maroon; font-family: Consolas; font-size: 9.5pt;">div</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: red;">id</span><span style="color: blue;">="divTexte"</span> <span style="color: red;">runat</span><span style="color: blue;">="server"</span> <span style="color: red;">visible</span><span style="color: blue;">="false"</span> <span style="color: red;">style</span><span style="color: blue;">="</span><span style="color: red;">border</span><span style="color: blue;">: thin #a5cce4 solid;"></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;"></</span><span lang="EN-GB" style="color: maroon; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;">div</span><span lang="EN-GB" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-GB;">></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">La première div sert à insérer le texte « Click here to Edit ».</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">La deuxième sert à afficher le contenu saisi par l’utilisateur « Mode Visualisation d’une page ».</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">La dernière permet de saisir du contenu « Mode Edition d’une page ».</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">Toujours dans le User Control, insérez dans le fichier « .ascx.cs » le code suivant :</span></div><div class="separator" style="clear: both; text-align: center;"></div><pre class="brush: c-sharp">using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
namespace WebPartContentEditor.VisualWebPart_ContentEditor
{
public partial class VisualWebPart_ContentEditorUserControl : UserControl
{
public VisualWebPart_ContentEditor ParentWebPart
{
get { return this.Parent as VisualWebPart_ContentEditor; }
}
protected void Page_Load(object sender, EventArgs e)
{
base.OnInit(e);
//On récupère la valeur de la variable cachée content
string strUpdatedContent = this.Page.Request.Form[this.ClientID + "content"];
//On récupère la méthode de sauvegarde du parent
ParentWebPart.SavePoperty(strUpdatedContent);
//Tester si la page est en mode Display : On affiche la div DisplayTexte
if (SPContext.Current.FormContext.FormMode == SPControlMode.Display)
{
this.divDisplayTexte.InnerHtml = this.ParentWebPart.Content;
}
//Tester si la page est en mode Edit : On affiche la div Texte
if (SPContext.Current.FormContext.FormMode == SPControlMode.Edit)
{
this.divTexte.Visible = true;
this.divTexte.InnerHtml = this.ParentWebPart.Content;
}
}
protected void Page_PreRender(object sender, EventArgs e)
{
if (SPContext.Current.FormContext.FormMode == SPControlMode.Edit)
{
//Enregistrement du hiddenfield associé à la div d'edition de texte riche
this.Page.ClientScript.RegisterHiddenField(this.ClientID + "content", divTexte.InnerHtml);
this.divDisplayTexte.Visible = false;
this.divEmptyPanel.Style.Add(HtmlTextWriterStyle.Cursor, "hand");
this.divEmptyPanel.Controls.Add(new LiteralControl("Click here to Edit"));
this.divEmptyPanel.Style.Add(HtmlTextWriterStyle.TextAlign, "center");
//Indique l'id de la div qui traite les retours-charriot
this.divTexte.Attributes["RteRedirect"] = this.divTexte.ClientID;
this.divTexte.Attributes["class"] = "ms-rtestate-write ms-rtestate-field";
this.divTexte.Attributes["contentEditable"] = "true";
this.divTexte.Attributes["InputFieldId"] = this.ClientID + "content";
this.divTexte.Attributes["EmptyPanelId"] = this.divEmptyPanel.ClientID;
this.divTexte.Attributes["ContentEditor"] = "True";
this.divTexte.Attributes["AllowScripts"] = "True";
this.divTexte.Attributes["AllowWebParts"] = "False";
//Script pour sauvegarder le texte saisi dans la zone éditable
string script1 = "RTE.RichTextEditor.transferContentsToInputField('" +
SPHttpUtility.EcmaScriptStringLiteralEncode(this.divTexte.ClientID) + "');";
Page.ClientScript.RegisterOnSubmitStatement(GetType(), "transfer" + this.divTexte.ClientID, script1);
// Activation des zones d'édtition html dans le ruban (Page Edit)
SPRibbon current = SPRibbon.GetCurrent(this.Page);
if (current != null)
{
current.MakeTabAvailable("Ribbon.EditingTools.CPEditTab");
current.MakeTabAvailable("Ribbon.Image.Image");
current.MakeTabAvailable("Ribbon.EditingTools.CPInsert");
current.MakeTabAvailable("Ribbon.Link.Link");
current.MakeTabAvailable("Ribbon.Table.Layout");
current.MakeTabAvailable("Ribbon.Table.Design");
if (!(this.Page is WikiEditPage))
{
current.TrimById("Ribbon.EditingTools.CPEditTab.Layout");
current.TrimById("Ribbon.EditingTools.CPEditTab.EditAndCheckout");
}
}
//Scripts nécessaires à l'édition texte riche
ScriptLink.RegisterScriptAfterUI(this.Page, "SP.UI.Rte.js", false);
ScriptLink.RegisterScriptAfterUI(this.Page, "SP.js", false);
ScriptLink.RegisterScriptAfterUI(this.Page, "SP.Runtime.js", false);
}
}
}
}
</pre><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">Il ne faut pas oublier d’ajouter la dll « Microsoft.Web.CommandUI.dll » qui permet d’ajouter et d’activer les onglets d’édition dans le ruban de SharePoint.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">Vous la trouvez dans le chemin suivant : </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;"><span style="font-family: Calibri;">C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI</span></span></div><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-p14bBOjjvQU/TghRkRSpYjI/AAAAAAAAACk/8AXJ4VjvAIE/s1600/img8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" i$="true" src="http://2.bp.blogspot.com/-p14bBOjjvQU/TghRkRSpYjI/AAAAAAAAACk/8AXJ4VjvAIE/s1600/img8.png" /></a></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><h1 style="margin: 24pt 0cm 0pt;"><span style="font-size: large;"><span style="color: #365f91;"><span style="font-family: Cambria;">Conclusion:</span></span></span></h1><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">Nous avons vu à travers ce post comment développer une Web Part contenant une zone de texte riche qui pourra servir à plusieurs usages.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Calibri;">N’hésitez pas à me donner votre avis !</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><br />
</div><div class="separator" style="clear: both; text-align: center;"></div></div>ZEMZEMI Aminehttp://www.blogger.com/profile/03616409187566730746noreply@blogger.com4tag:blogger.com,1999:blog-2523606098031221106.post-34885945923909387812011-06-23T08:10:00.000-07:002011-06-24T05:42:38.041-07:00S’attacher à l’évènement de sauvegarde d’une page SharePoint<div align="center"><span style="font-size:180%;color:#3366ff;"><strong>S’attacher à l’évènement de sauvegarde d’une page SharePoint<br />
</div></strong></span><br />
<br />
<br />
<br />
<div align="left"><br />
Dans plusieurs cas vous aurez besoin de gérer l’évènement de sauvegarde de votre page. En effet, le cas que j’ai rencontré consiste à gérer les données qui sont saisies par l’utilisateur dans une zone de texte pour effectuer un certain traitement.<br />
<br />
Si vous avez des sauvegardes particulières à faire ou des traitements spécifiques qui ne sont pas pris en compte par le bouton « Sauvegarder la page » de SharePoint, vous pouvez gérer cet évènement en utilisant l’évènement <strong>SPContext.Current.FormContext.OnSaveHandler </strong>:<br />
</div><br />
<br />
<pre class="brush: c-sharp">protected override void OnInit(EventArgs e)
{
base.OnInit(e);
// ajouter l'évènement de sauvegarde uniquement dans le mode New et Edit d'une page
if ((SPContext.Current.FormContext.FormMode == SPControlMode.New) || (SPContext.Current.FormContext.FormMode == SPControlMode.Edit))
SPContext.Current.FormContext.OnSaveHandler = new EventHandler(MyHandler);
}
protected void MyHandler(object sender, EventArgs e)
{
Page.Validate();
if (Page.IsValid)
// do actions before save
// do the save if required
SPContext.Current.ListItem.Update();
// or you can save the item using this line of code either
//SaveButton.SaveItem();
// do actions after save
}
else
{
// do actions instead of save
}
}
</pre>ZEMZEMI Aminehttp://www.blogger.com/profile/03616409187566730746noreply@blogger.com0tag:blogger.com,1999:blog-2523606098031221106.post-71977660879973966712011-03-18T03:23:00.000-07:002011-03-18T03:36:36.932-07:00WebCast - TechDays : Code Contract<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="640" height="360"><br /> <param name="source" value="http://www.microsoft.com/showcase/silverlight/player/1/player-fr.xap"/><br /> <param name="enableHtmlAccess" value="true" /> <br /> <param name="background" value="#FF000000" /><br /> <param name="allowHtmlPopupwindow" value="true" /><br /> <param name="minRuntimeVersion" value="4.0.50401.0" /><br /> <param name="autoUpgrade" value="true" /><br /> <param name="initParams" value="Culture=fr-FR,Uuid=3c39499e-ca70-4d40-9e99-12c48ea748cb,Autoplay=false,ShowMarketingOverlay=true,MiscControls=FullScreen;Detached,ShowMenu=True,Tabs=Embed;Email;Share;Info,VideoUrl=http://microsoft.com/showcase/fr/fr/details/3c39499e-ca70-4d40-9e99-12c48ea748cb,Mode=Player" /><br /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156" style="text-decoration: none;" onmousedown="javascript:new Image().src = 'http://m.webtrends.com/dcsygm2gb10000kf9xm7kfvub_9p1t/dcs.gif?dcsdat=' + new Date().getTime() + '&dcssip=www.microsoft.com&dcsuri=' + window.location.href + '&WT.tz=-8&WT.bh=16&WT.ul=fr-FR&WT.cd=32&WT.jo=Yes&WT.ti=&WT.js=Yes&WT.jv=1.5&WT.fi=Yes&WT.fv=10.0&WT.sli=Not%20Installed&WT.slv=Version%20Unavailable&WT.dl=1&WT.seg_1=Not%20Logged%20In&WT.vt_f_a=2&WT.vt_f=2&WT.vt_nvr1=2&WT.vt_nvr2=2&WT.vt_nvr3=2&WT.vt_nvr4=2&vp_site=Embedded&wtEvtSrc=' + window.location.href + '&vp_sli=Embedded'" ><br /> <img src="http://img.microsoft.com/showcase/Content/img/resx/fr-FR/installSL.gif" alt="Get Microsoft Silverlight" style="border-style: none"/><br /> </a><br /> <noscript><div><img alt="DCSIMG" id="DCSIMG" width="1" height="1" src="http://m.webtrends.com/dcsygm2gb10000kf9xm7kfvub_9p1t/njs.gif?dcsuri=/nojavascript&WT.js=No"/></div></noscript><br /> </object><br /> <script type="text/javascript"> document.write("<br /><script type='text/javascript' src='" + (window.location.protocol) + "//c.microsoft.com/ms.js'" + "'></script>");ZEMZEMI Aminehttp://www.blogger.com/profile/03616409187566730746noreply@blogger.com0tag:blogger.com,1999:blog-2523606098031221106.post-43203089849886708672011-01-27T13:42:00.000-08:002011-01-29T04:14:30.748-08:00Techdays 2011<div align="justify"><span style="font-size:130%;">Bonjour tout le monde,<br />J'aurai le plaisir de <span id="SPELLING_ERROR_0" class="blsp-spelling-error">co-animer</span> une session aux <span id="SPELLING_ERROR_1" class="blsp-spelling-error">techDays</span> dédiée à Code <span id="SPELLING_ERROR_2" class="blsp-spelling-error">Contracts</span> avec </span><a href="http://gilles.tourreau.fr/"><span style="font-size:130%;">Gilles <span id="SPELLING_ERROR_3" class="blsp-spelling-error">Tourreau</span> (<span id="SPELLING_ERROR_4" class="blsp-spelling-error">MVP</span> C#)</span></a><span style="font-size:130%;">.<br />La programmation par contrat (ou Code <span id="SPELLING_ERROR_5" class="blsp-spelling-error">Contracts</span>) est une nouveauté du <span id="SPELLING_ERROR_6" class="blsp-spelling-error">Framework</span> .Net 4.0.<br />Ce concept vous permet de définir des contraintes au niveau de votre code et de détecter les éventuelles erreurs à la compilation et à <span id="SPELLING_ERROR_7" class="blsp-spelling-corrected">l'exécution</span>.<br />Je vous invite à assister à notre session pour acquérir des nouvelles idées sur l'amélioration de vos programmes.<br /></span><a href="http://www.microsoft.com/france/mstechdays/programmes/Session.aspx?CellID=6ddea382-4bee-465f-9b62-615736e11e3f"><span style="font-size:130%;">Accéder à la page officielle de la session sur Code Contracts</span></a> </div>ZEMZEMI Aminehttp://www.blogger.com/profile/03616409187566730746noreply@blogger.com0