设为首页 收藏本站
查看: 1029|回复: 0

[经验分享] SharePoint 2010 使用SP.UI.ModalDialog.showModalDialog(options)对话框框架传值

[复制链接]

尚未签到

发表于 2015-9-26 13:52:57 | 显示全部楼层 |阅读模式
DSC0000.png
  如图,主页面叫BasePage.aspx,被弹出的页面叫popupForm.aspx,弹出窗口的代码是:
  var options = {
url: ‘popupForm.aspx’,
args: null,
title: ‘Select Value’,
dialogReturnValueCallback: dialogCallback
};
SP.UI.ModalDialog.showModalDialog(options);
  其中dialogCallback是回调函数。可以参考http://msdn.microsoft.com/en-us/library/ff410058.aspx
  那么如何在两个页面之间传值呢?
  一.由BasePage.aspx页面向popupForm.aspx传值。
  1,最典型的就是使用GET方法传递
  var options = {
url: ‘popupForm.aspx?itemID=7′,
args: null,
title: ‘Select Value’,
dialogReturnValueCallback: dialogCallback
};
SP.UI.ModalDialog.showModalDialog(options);
  接收方法:需要在popupForm.aspx后台接收,c#代码如下:
  int itemID = Convert.ToInt32(Request.QueryString["ItemID"]);
  2.使用options中的参数,将弹出窗口代码改写如下:
  var options = {
url: ‘popupForm.aspx’,
args: 7,
title: ‘Select Value’,
dialogReturnValueCallback: dialogCallback
};
SP.UI.ModalDialog.showModalDialog(options);
  在popuForm.aspx后台接收方法,这里就不再需要用后台代码了,js即可,代码如下:
  var itemID = window.frameElement.dialogArgs;
  二,向BasePage.aspx页面传回值。
  首先,先看一下上面的回调函数dialogCallback的常见代码:
  
  function dialogCallback (dialogResult, returnValue) {
    if(dialogResult == SP.UI.DialogResult.ok){
        // The user clicked the OK button.      
        // handle commitPopup   
  } else{
  // The user clicked the Cancel button.   
        // handle cancelPopup     
    }
}
  关闭弹出窗口的页面有三种方法可以调用:
  1,window.frameElement.cancelPopUp(),调用该方法,将关闭窗口。返回值result是:SP.UI.DialogResult.cancel
  2.window.frameElement.commitPopup(),调用该方法,将关闭窗口。返回值result是:SP.UI.DialogResult.ok
  3.window.frameElement.commonModalDialogClose(),同上,不过返回值是指定的第一个参数。
  上面三个方法如有疑问,可以msdn查询。注意红色标注的U的大小写区分。
  下面是传回值的示例代码
  1,如果是想使用c#实现,注意传回的值是数字7:

  • private void CloseDialog()
  • {
  • string response
  • = string.Format(“<script type=’text/javascript’>window.frameElement.commitPopup(\”{0}\”);</script>”, 7);
  • Context.Response.Flush();
  • Context.Response.End();
  • }
  2.如果想使用js实现,传回值的值依然是数字7:
  <script type=’text/javascript’>window.frameElement.commitPopup(“7”);</script>
  下面是BasePage.aspx的接收方法:接收返回值7,并弹出。

  • function dialogCallback (dialogResult, returnValue)
  • {
  • if (returnValue != null) {
  • alert(returnValue);//弹出窗口
  • }
  • return;
  • }
  原文参考:http://www.sharepointdevelopment.me/2011/06/passing-data-to-and-from-sharepoint-modal-dialogs/
  http://www.chakkaradeep.com/post/Using-the-SharePoint-2010-Modal-Dialog.aspx
  下面是一个实例代码(只是觉得能够给人启发):利用jQuery,将主页面内文本框的值,传递给弹出窗口并绑定到label上
  function DisplayDialog() {
  var options = {
url: ‘PopupFormExample.aspx’,
args: $(‘#txtInput’).val(),
title: ‘Select Value’,
dialogReturnValueCallback: callbackMethod
};
SP.UI.ModalDialog.showModalDialog(options);
}
  使用label接收参数
  $(“span[id$='lblOutput']“).html(window.frameElement.dialogArgs);
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119165-1-1.html 上篇帖子: sharePoint 从零开始之安装SharePoint 下篇帖子: SharePoint缓存配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表