web-dev-qa-db-fra.com

Comment actualiser une page parent après avoir fermé la boîte de dialogue SharePoint?

Comment actualiser une page parent après avoir fermé la boîte de dialogue SharePoint? Voici mon code pour ouvrir un pop-up.

<input type="button" value="Add" class="button submit" style="width: 80px" onclick="javascript:OpenAttachmentUpload()" />

<script type="text/javascript">

    //User Defined Function to Open Dialog Framework
    function OpenAttachmentUpload() {

        var strPageURL = '<%= ResolveClientUrl("~/Dialogs/AttachUpload.aspx") %>';
        //OpenFixCustomDialog(strPageURL, "Attachment");
        OpenCustomDialog(strPageURL, 350, 200, "Attachment");
        return false;
    }
</script>

voici le script.

function OpenCustomDialog(dialogUrl, dialogWidth, dialogHeight, dialogTitle, dialogAllowMaximize, dialogShowClose) {

    var options = {
        url: dialogUrl,
        allowMaximize: dialogAllowMaximize,
        showClose: dialogShowClose,
        width: dialogWidth,
        height: dialogHeight,
        title: dialogTitle,
        dialogReturnValueCallback: Function.createDelegate(null, CloseCallback3)
    };
    SP.UI.ModalDialog.showModalDialog(options);
}

Après l'avoir ouvert, lorsque je ferme la fenêtre contextuelle (~/Dialogs/AttachUpload.aspx), je veux actualiser la page parent. Comment puis-je le faire? Je google et vois SP.UI.ModalDialog.RefreshPage mais je ne trouve toujours pas de réponse pour moi. Merci.

P.s je ne connais pas grand chose à SharePoint.

16
kevin

Tu y es presque.

Dans l'option dialogReturnValueCallback, vous pouvez définir une fonction qui sera exécutée après la fermeture de la boîte de dialogue. À présent, vous créez un délégué pointant vers CloseCallback3 mais ce n'est pas défini dans votre code.

Si vous appelez SP.UI.ModalDialog.RefreshPage dans cette méthode de rappel, la page est rafraîchie après la fermeture de la boîte de dialogue avec [~ # ~] ok [~ # ~] .

 var options = 
 {
        url: dialogUrl,
        allowMaximize: dialogAllowMaximize,
        showClose: dialogShowClose,
        width: dialogWidth,
        height: dialogHeight,
        title: dialogTitle,
        dialogReturnValueCallback: function(dialogResult) 
        { 
          SP.UI.ModalDialog.RefreshPage(dialogResult) 
        }
 }

Btw: Vous utilisez javascript: dans le onclick du bouton. Ce n'est pas nécessaire. ceci n'est requis que dans le href d'une balise a

26
Stefan

Vous pouvez également utiliser la fonction intégrée "RefreshOnDialogClose"

 SP.UI.ModalDialog.showModalDialog({
    url: dialogUrl,         
    allowMaximize: dialogAllowMaximize,         
    showClose: dialogShowClose,         
    width: dialogWidth,         
    height: dialogHeight,         
    title: dialogTitle,         
    dialogReturnValueCallback: RefreshOnDialogClose  
}); 
26
Baris

Essayez d'utiliser ce code en cliquant sur un bouton:

<script type="text/javascript">
    function RefreshParent() 
    {
        SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.Ok, null);
    }
</script>
1
Amay Kulkarni

Si vous ne souhaitez actualiser la page que si des modifications ont été apportées, vous pouvez utiliser le rappel suivant à la place.

var options = 
{
    url: dialogUrl,
    allowMaximize: dialogAllowMaximize,
    showClose: dialogShowClose,
    width: dialogWidth,
    height: dialogHeight,
    title: dialogTitle,
    dialogReturnValueCallback: function(dialogResult) 
    {
        if (dialogResult != SP.UI.DialogResult.cancel)
        {
            SP.UI.ModalDialog.RefreshPage(dialogResult)
        }
    }
}

Vous évite d'actualiser la page si l'utilisateur clique sur Annuler.

1
Indy411

Essayez le code Javascript comme ci-dessous dans Closecallback.

window.location = window.location;

1
Atul