[SharePoint 2010] Problème lors d’un second postback dans une WebPart avec un UpdatePanel ou une SPGridView

Vous l’avez peut-être remarqué mais, lorsque vous ajoutez un bouton dans un UpdatePanel ou encore dans une SPGridView (qui utilise également ce mécanisme pour afficher les données), l’action du bouton ne fonctionne que la première fois. Il vous faut recharger complètement la page pour pouvoir le refaire marcher.

Après plusieurs recherches, j’ai pu trouver une explication assez vague : Le service JavaScript de SharePoint override l’action par defaut du formulaire afin de pouvoir gérer certains types d’URL, qui peuvent contenir des caractères sur deux octets, pour des scénarios de rappels asynchrones.

La solution est donc de désactiver cette solution par le biais d’un script simple :

<script type="text/javascript">
    _spOriginalFormAction = document.forms[0].action;
    _spSuppressFormOnSubmitWrapper = true;
</script>

Ce qui résoudra votre problème de second postback.

2 Commentaires

  1. Bonjour,

    On a également le problème lorsque l’on veut mettre un bouton dont l’action ne provoque pas le reload de la page; ex: un bouton qui provoque un téléchargement d’un fichier (ex: bouton « export CSV »).

    Pour l’analyse, je pense que le bouton est désactivé par défaut par Sharepoint pour éviter les effets des multiple-clickers!

    Pour éviter de modifier le comportement du formulaire dans sa globalité, je propose plutôt d’intervenir sur les boutons concernés. Ex (côté serveur):
    btnExport.Attributes.Add(« onclick », « _spSuppressFormOnSubmitWrapper=true; »);

    Jérôme.

  2. This was a great info. Thanks for sharing it with us and thank you for putting up such a helpful and useful information on your blog.

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :