SharePoint 2010 使用SP.UI.ModalDialog.showModalDialog(options)对话框框架传值

如图,主页面叫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: 

  1. private void CloseDialog()
  2. {
  3. string response
  4. = string.Format(“<script type=’text/javascript’>window.frameElement.commitPopup(\”{0}\”);</script>”, 7);
  5. Context.Response.Flush();
  6. Context.Response.End();
  7. }

2.如果想使用js实现,传回值的值依然是数字7:

<script type=’text/javascript’>window.frameElement.commitPopup(“7”);</script>

下面是BasePage.aspx的接收方法:接收返回值7,并弹出。 

  1. function dialogCallback (dialogResult, returnValue)
  2. {
  3. if (returnValue != null) {
  4. alert(returnValue);//弹出窗口
  5. }
  6. return;
  7. }

原文参考: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);

 

转载于:https://www.cnblogs.com/sygwin/archive/2011/11/08/2241061.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值