lundi 11 août 2008

Ajout bouton Toolbar + Création d'un lien

Voici un code à insérer dans une page SharePoint pour intégrer un bouton dans une barre d'outils standard sans passer par une Custom Action comme ceci :


Cela est utile notamment lorsque vous avez affiché une vue de données sur un élément de liste (ex: tous les produits d'une catégorie donnée) et que vous voulez pouvoir créer une nouvelle donnée en envoyant l'identifiant de l'élément courant (ex: ajouter un nouveau produit pour une catégorie particulière). C'est la cas qui est détaillé ici mais il pourra être adapter pour tout autre cas de figure.

Tout d'abord le "bouton" en lui-même qui est un simple div avec quelques propriétés de classes css et de comportements :
<div id="NewLink" class="ms-menubuttoninactivehover" hoverinactive="ms-menubuttoninactivehover" hoveractive="ms-menubuttonactivehover" onmouseover="MMU_PopMenuIfShowing(this);MMU_EcbTableMouseOverOut(this, true)"></div>

Ensuite vous positionnez le script suivant qui écrira ce qu'il faut dans le div (positionner ce script juste avant la balise </asp:Content> , c'est à dire juste avant la fin du panel qui contient votre div)
<script language="javascript" type="text/javascript">
var qs = location.search.substring(1, location.search.length);
var args = qs.split("&");
var vals = new Object();
for (var i=0; i < args.length; i++)
{
var nameVal = args[i].split("=");
if(nameVal[0]=="ID")
{
var temp = unescape(nameVal[1]).split('+');
nameVal[1] = temp.join(' ');
document.getElementById("NewLink").innerHTML="<a href='VOTRE_URL?ListId="+nameVal[1]+"'>Nouvel Elément</a>"; }
}
</script>
Il faut bien sûr modifier VOTRE_URL et ListId avec, respectivement, l'url de destination ainsi que le nom du paramètre qui sera traité par la page de destination (plus d'infos dans Valeurs par defaut de contrôles dans un formulaire SharePoint)

Et pour finir une petit lien bien pratique pour encoder/decoder les entités html lors de passage de paramètres dans l'url Querystring parameters

Aucun commentaire: