Как обновить родительскую страницу после закрытия диалогового окна sharepoint? - PullRequest
16 голосов
/ 08 декабря 2011

Как обновить родительскую страницу после закрытия диалогового окна sharepoint?Вот мой код для открытия всплывающего окна.

<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>

вот сценарий.

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);
}

После его открытия при закрытии всплывающего окна (~/Dialogs/AttachUpload.aspx), я хочу обновить родительскую страницу.Как мне это сделать?Я гуглю и вижу SP.UI.ModalDialog.RefreshPage , но все еще не могу найти ответ для меня.Спасибо.

Ps Я не очень разбираюсь в SharePoint.

Ответы [ 5 ]

26 голосов
/ 21 сентября 2012

Вы также можете использовать встроенную функцию " RefreshOnDialogClose "

 SP.UI.ModalDialog.showModalDialog({
    url: dialogUrl,         
    allowMaximize: dialogAllowMaximize,         
    showClose: dialogShowClose,         
    width: dialogWidth,         
    height: dialogHeight,         
    title: dialogTitle,         
    dialogReturnValueCallback: RefreshOnDialogClose  
}); 
25 голосов
/ 08 декабря 2011

Ты почти у цели.

В опции dialogReturnValueCallback вы можете определить функцию, которая будет выполняться после закрытия диалога. К настоящему времени вы создаете делегата, указывающего на CloseCallback3, но это не определено в вашем коде.

Если вы вызываете SP.UI.ModalDialog.RefreshPage в этом методе обратного вызова, страница обновляется после закрытия диалога нажатием OK .

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

Btw: Вы используете javascript: в onclick кнопки. Это не обязательно. это требуется только в href тега a

1 голос
/ 20 января 2016

Попробуйте код java-скрипта, как показано ниже в Closecall back.

window.location = window.location;

1 голос
/ 02 июня 2015

Если вы хотите обновить страницу только после внесения изменений, вы можете использовать следующий обратный вызов.

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)
        }
    }
}

Спасает вас от обновления страницы, если пользователь нажал "Отмена".

1 голос
/ 05 февраля 2015

Попробуйте использовать этот код при нажатии кнопки:

<script type="text/javascript">
    function RefreshParent() 
    {
        SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.Ok, null);
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...