【问题标题】:How to refresh a parent page after closing sharepoint dialog?关闭共享点对话框后如何刷新父页面?
【发布时间】:2012-01-15 15:22:30
【问题描述】:

关闭共享点对话框后如何刷新父页面? 这是我打开弹出窗口的代码。

<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 但仍然无法为我找到答案。 谢谢。

附言 我对 SharePoint 了解不多。

【问题讨论】:

  • 你在哪里尝试调用 SP.UI.ModalDialog.RefreshPage?你应该从你的 dialogReturnValueCallback 调用它
  • @MishaU-> 抱歉回复晚了。 OpenCustomDialog 函数位于 js 文件中。我从父页面调用它。你是什​​么意思你应该从你的 dialogReturnValueCallback 调用它。我不明白,因为我不熟悉 SharePoint。
  • 您应该从您的 dialogReturnValueCallback 调用它 - 在您为选项属性 dialogReturnValueCallback 设置的回调方法中调用 SP.UI.ModalDialog.RefreshPage :)。你在我的意思下面有答案
  • 打开 DispForm.aspx 并执行排除时会起作用吗?

标签: c# sharepoint dialog modal-dialog


【解决方案1】:

你快到了。

在选项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) 
        }
 }

顺便说一句: 您在按钮的onclick 中使用javascript:。这不是必需的。这仅在a 标签的href 中是必需的

【讨论】:

  • 抱歉回复晚了。是的,现在可以了。你救了我的命 ?我昨天一整天都在试图解决这个问题。再次感谢!!!
【解决方案2】:

您也可以使用内置函数“RefreshOnDialogClose

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

【讨论】:

  • 这很棒,正是我想要的。谢谢
  • 这似乎是最好的答案。
【解决方案3】:

尝试在单击按钮时使用此代码:

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

【讨论】:

    【解决方案4】:

    如果您只想在进行更改后刷新页面,则可以使用以下回调代替。

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

    如果用户点击取消,则无需刷新页面。

    【讨论】:

      【解决方案5】:

      在 Closecall back 中尝试如下 java-script 代码。

      window.location = window.location;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-22
        相关资源
        最近更新 更多