Utilisation des webpart verbs

Dieudonne N'TAMACK

Dans ce tutoriel, vous allez apprendre ce que sont les webparts verbs et comment les créer.

- Titre : Utilisation des webpart verbs

- Auteur : Dieudonne N'TAMACK

- Parution : 18 février 2008

- Licence : Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.

Sommaire

- I. Introduction

- II. Le code

I - Introduction

Les webparts verbs sont des actions qui apparaissent dans le menu d'une webpart

Ils peuvent exécuter du code client et/ou serveur. Nous allons développer un exemple illustrant la création d'un verbe exécutant à la fois des actions du côté client et du côté serveur.

II - Le code

Dans notre exemple, nous allons créer 2 verbs, l'un exécutant du code client et l'autre du code server. Pour cela, commençons par créer une webpart

using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
using System.ComponentModel;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Data;
using Microsoft.SharePoint.Utilities;
namespace Coforcert {
public class VerbWP : WebPart {
}
}

Puis, overridons la propriété Verbs et déclarons les variables et EventHandler que nous allons utiliser

namespace Coforcert {
public class VerbWP : WebPart {
string openGooglejs;
public void OpenGoogleServer(object sender, WebPartEventArgs e) {
}
public override WebPartVerbCollection Verbs {
get {
List<WebPartVerb> verbs = new List<WebPartVerb>();
WebPartVerb clientVerb = new WebPartVerb(Guid.NewGuid().ToString(), openGooglejs);
clientVerb.Description = "Open Google wiht a client script in an external window";
clientVerb.Text = "Open Google from Client";
verbs.Add(clientVerb);
WebPartEventHandler serverHandler = new WebPartEventHandler(OpenGoogleServer);
WebPartVerb serverVerb = new WebPartVerb(Guid.NewGuid().ToString(), serverHandler);
serverVerb.Description = "Open Google wiht a server script in an external window";
serverVerb.Text = "Open Google From Server";
verbs.Add(serverVerb);
WebPartVerbCollection verbcoll = new WebPartVerbCollection(base.Verbs, verbs);
return verbcoll;
}
}
}
}

Dans notre propriété Verbs, nous créons une liste pour recevoir nos verbs et ensuite nous créons 2 WePartVerb, l'un qui va exécuter du code client et l'autre du code serveur. Puis nous créons une WebPartVerbCollection qui va nous servir à fusionner les verbs existant avec les nouveaux verbs. Nous sommes obligés de passer par la création cette collection, car elle est en lecture seule, et nous ne pouvons donc plus la modifier une fois créée. Ceci étant fait, il ne nous reste plus qu'à écrire notre code client,

string openGooglejs = "window.open('http://www.google.fr','Google')";

Puis notre code serveur,

public void OpenGoogleServer(object sender, WebPartEventArgs e) {
this.Context.Response.Redirect("http://www.google.fr");
}

Et le tour est joué. Voici le code complet de cet exemple

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
using System.ComponentModel;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Data;
using Microsoft.SharePoint.Utilities;
namespace Coforcert {
public class VerbWP : WebPart {
string openGooglejs = "window.open('http://www.google.fr','Google')";
public void OpenGoogleServer(object sender, WebPartEventArgs e) {
this.Context.Response.Redirect("http://www.google.fr");
}
public override WebPartVerbCollection Verbs {
get {
List<WebPartVerb> verbs = new List<WebPartVerb>();
WebPartVerb clientVerb = new WebPartVerb(Guid.NewGuid().ToString(), openGooglejs);
clientVerb.Description = "Open Google wiht a client script in an external window";
clientVerb.Text = "Open Google from Client";
verbs.Add(clientVerb);
WebPartEventHandler serverHandler = new WebPartEventHandler(OpenGoogleServer);
WebPartVerb serverVerb = new WebPartVerb(Guid.NewGuid().ToString(), serverHandler);
serverVerb.Description = "Open Google wiht a server script in an external window";
serverVerb.Text = "Open Google From Server";
verbs.Add(serverVerb);
WebPartVerbCollection verbcoll = new WebPartVerbCollection(base.Verbs, verbs);
return verbcoll;
}
}
}
}

Et voici le résultat lorsque le webpart est déployé