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">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)
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>
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:
Enregistrer un commentaire