javascript – 如何从sharepoint中的按钮单击关闭SP.UI.ModalDialog?

前端之家收集整理的这篇文章主要介绍了javascript – 如何从sharepoint中的按钮单击关闭SP.UI.ModalDialog?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
用户从EDITForm.aspx保存任何文档时,我想显示确认对话框.所以我写了以下 JavaScript代码.
  1. function PreSaveAction() {
  2.  
  3. var _html = document.createElement();
  4. _html.innerHTML = " <input type=\"button\" value=\"Submit\" onclick ='javascript:SubmitDlg();' /> <input type=\"button\" value=\"Cancel\" onclick =\"javascript:CloseDlg();\" /> </td> </tr> </tbody> </table>";
  5.  
  6.  
  7. var options = {
  8. title: "Confirm",width: 400,height: 200,showClose: false,allowMaximize: false,autoSize: false,html: _html
  9. };
  10. SP.UI.ModalDialog.showModalDialog(options);
  11.  
  12. }
  13.  
  14. function SubmitDlg() {
  15. SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.OK);
  16.  
  17.  
  18. }
  19.  
  20. function CloseDlg() {
  21. SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.Cancel);
  22. }

现在我有以下查询.

>单击“提交”或“提交”时,不会触发SubmitDlg和CloseDlg
取消.
>这是从模态对话框提交表单(SubmitDlg方法)和取消对话框(CloseDlg方法)的正确方法吗?
>此外,只有在保存记录时没有验证错误时才会显示此模态对话框,这意味着如果需要任何字段值,并且我们没有放任何值,那么它应该显示内置的红色消息.

谢谢

解决方法

在模态对话框的选项中,您需要将引用传递给您的回调函数,如下所示:
  1. var opt = SP.UI.$create_Dialogoptions();
  2. opt.width = 500;
  3. opt.height = 200;
  4. opt.url = url;
  5. opt.dialogReturnValueCallback = MyDialogClosed;
  6.  
  7. SP.UI.ModalDialog.showModalDialog(opt);

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

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

}

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

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

要完成这项工作,您需要使用以下内容函数连接到服务器端代码中的“确定”按钮:

  1. protected override void OnLoad(EventArgs e)
  2. {
  3. if (Master is DialogMaster)
  4. {
  5. var dm = Master as DialogMaster;
  6. if(dm != null) dm.OkButton.Attributes.Add(@"onclick",@"return okClicked();");
  7. }
  8.  
  9. base.OnLoad(e);
  10. }

猜你在找的JavaScript相关文章