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

Ces verbs peuvent ensuite exécuter du code client ou server. Pour créer de nouveaux verbs, nous devons overrider la propriété Verbs de notre webpart, qui retourne une WebPartVerbCollection en lecture seule. 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.Data;
using System.Collections.Generic;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.ComponentModel;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Utilities;
namespace Coforcert {
public class VerbWP : WebPart {
}
}
Puis surchargeons 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;
}
}
}
}
Une fois notre WebPart déployé, nous obtenons ceci :
