如何从sharepoint中的按钮单击关闭SP.UI.ModalDialog? [英] How to close SP.UI.ModalDialog from button click in sharepoint?

查看:101
本文介绍了如何从sharepoint中的按钮单击关闭SP.UI.ModalDialog?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当用户从EDITForm.aspx保存任何文档时,我想显示确认对话框。所以我编写了以下JavaScript代码。

I want to show Confirmation Dialog when user saves any document from EDITForm.aspx. So I have written following JavaScript code.

function PreSaveAction() {

 var _html = document.createElement();
 _html.innerHTML = "  <input  type=\"button\"  value=\"Submit\"    onclick ='javascript:SubmitDlg();'  />  <input  type=\"button\"  value=\"Cancel\" onclick =\"javascript:CloseDlg();\"     /> </td>           </tr>   </tbody> </table>";


 var options = {
            title: "Confirm",
            width: 400,
            height: 200,
            showClose: false,
            allowMaximize: false,
            autoSize: false,
            html: _html           
        };
        SP.UI.ModalDialog.showModalDialog(options); 

}

function SubmitDlg() { 
   SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.OK);


}

function CloseDlg() {
     SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.Cancel);
}

现在我有以下查询。


  1. 单击提交或
    取消时不会触发SubmitDlg和CloseDlg。

  2. 这是提交表单的正确方法(SubmitDlg方法)从模态对话框中取消对话框(CloseDlg方法)?

  3. 此外,只有在保存记录时没有验证错误时才会出现此模态对话框,这意味着如果需要任何字段值,我们没有放任何价值,那么它应该显示内置的红色消息。

谢谢

推荐答案

在模态对话框的选项中,你需要传递对你的回调函数的引用,如下所示:

in the options for the modal dialog you need to pass a reference to your call back function like this:

var opt = SP.UI.$create_DialogOptions();
opt.width = 500;
opt.height = 200;
opt.url = url;
opt.dialogReturnValueCallback = MyDialogClosed;

SP.UI.ModalDialog.showModalDialog(opt);

然后在您的回调函数中,您可以检查状态:

Then in your callback function you can check the status:

function MyDialogClosed(result, value) {
if (result == SP.UI.DialogResult.Cancel) {
    //Cancel. Do whatever
}
else { //SP.UI.DialogResult.OK
    //User clicked OK. You can pickup whatever was sent back in 'value'    }

}

如果您需要从对话框发回东西,可以使用:

If you need to send stuff back from your dialog you can use this:

function okClicked()
{
    SP.UI.ModalDialog.commonModalDialogClose(1, someobject);
}

为了完成这项工作,你需要将一个函数连接到服务器端代码中的OK按钮使用如下内容:

To make this work you'd need to hook-up a function to the OK button in your server side code using something like this:

protected override void OnLoad(EventArgs e)
    {
        if (Master is DialogMaster)
        {
            var dm = Master as DialogMaster;
            if(dm != null) dm.OkButton.Attributes.Add(@"onclick", @"return okClicked();");
        }

        base.OnLoad(e);
    }

这篇关于如何从sharepoint中的按钮单击关闭SP.UI.ModalDialog?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆