Archives Mensuelles: août 2011

[SharePoint2010] Comment ajouter du javascript sur une Liste créé dynamiquement

Imaginons que vous avez un formulaire avec un bouton sur une page d’un de vos site SharePoint, et que vous souhaitiez créer une nouvelle page lors de la validation de celui-ci.
Sous SharePoint Designer 2010 il est très facile de modifier le code source de vos pages. De ce fait, modifiez votre page et ajoutez y votre bouton comme suit :

<asp:Button runat="server" Text="Valider le formulaire" OnClick="Valider_Click" id="Valider"></asp:Button>

Maintenant nous allons ajouter notre codebehind afin de gérer l’évènement click de notre bouton. Afin de pouvoir ajouter du code directement dans notre page, il suffit d’ajouter la balise script comme suit :

<script type="text/c#" runat="server">
</script>

Nous allons donc créer notre Liste dynamiquement:

public void Valider_Click(object sender, EventArgs e)
{
     using (SPSite siteCollection = new SPSite("http://demosharepoint:80/monsite/"))
     {
        using (SPWeb site = siteCollection.OpenWeb())
        {
               site.Lists.Add(“Ma Liste Dynamique”, "", site.ListTemplates["Custom List"]);
               site.Update();
               nouvelleListe = site.Lists.TryGetList(“Ma Liste Dynamique”);
        }
     }
}

Nous venons donc de créer notre liste dynamiquement.

Imaginons maintenant que nous souhaitions que lors que l’on consulte notre liste une popup nous affiche un message.
Voici donc le javascript plutôt simpliste que nous pourions avoir :

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>

<script type="text/javascript">

$(document).ready(function() {
     alert("Hello World !");
});

</script>

Afin de pouvoir l’ajouter à notre page nous allons placer ce javascript dans un fichier texte (par exemple « Script.txt »), puis nous allons l’ajouter dans les « Shared Documents » de notre Site.

Une fois tout cela fait, retournons dans SharePoint Designer et reprenons notre code. Afin de pouvoir ajouter notre javascript nous devons créer une WebPart ContentEditor que nous allons linker sur notre fichier texte puis que nous l’ajouterons à une des pages de notre liste. (par une des pages de notre liste je comprend soit la page View, Edit, New, etc.) :

ContentEditorWebPart ceWebPart = new ContentEditorWebPart();
ceWebPart.ContentLink = "/monsite/Shared Documents/Script.txt";
SPForm formNew = null;
foreach (SPForm form in nouvelleListe.Forms)
{
    if (form.Type == PAGETYPE.PAGE_VIEW)
    {
        formNew = form; // Recuperation du formulaire sur le quel nous allons ajouter notre javascript.
    }
}

if (formNew != null)
{
    using (SPLimitedWebPartManager webPartManager = site.GetLimitedWebPartManager(formNew.Url, PersonalizationScope.Shared))
    {
        webPartManager.AddWebPart(ceWebPart, "0", 0); // Ajout de la Webpart ContentEditor linké sur notre fichier javascript.
    }
}

Pour voir tous les « PAGETYPE » possible, rendez vous sur ce lien :

http://msdn.microsoft.com/fr-fr/library/microsoft.sharepoint.pagetype(v=office.12).aspx

Ansi, à chaque fois que vous validerez votre formulaire, une liste sera créé et lors que vous vous rendrez sur la page de votre liste, vous aurez le message « Hello World ! » qui s’affichera.