SharePoint 2010 使用SP.UI.ModalDialog.showModalDialog(options)对话框框架传值
2013-02-22 09:37
561 查看
如图,主页面叫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);
转载:/article/5306140.html
相关文章推荐
- SharePoint 2010 使用SP.UI.ModalDialog.showModalDialog(options)对话框框架传值以及关闭窗口
- SharePoint 2010 使用SP.UI.ModalDialog.showModalDialog(options)对话框框架传值
- SharePoint 2010 使用后台代码向SP.UI.ModalDialog.showModalDialog传值
- SharePoint 2013 中使用 SP.UI.ModalDialog.showModalDialog时 showModalDialog 未定义
- SharePoint 2013中使用SP.UI.ModalDialog.showModalDialog时showModalDialog未定义的解决办法
- 关于SP.UI.ModalDialog.showModalDialog()的使用
- Update the link url in the Moss 2010 to call SP.UI.ModalDialog.showModalDialog
- 每日总结:DIV弹层遮盖、DIV设置透明背景色、JS调用SharePoint 中的SP.UI.ModalDialog弹出遮盖层显示
- 每日总结:DIV弹层遮盖、DIV设置透明背景色、JS调用SharePoint 中的SP.UI.ModalDialog弹出遮盖层显示
- SP.UI.ModalDialog.ShowDialog(options)杂记
- SP.UI.ModalDialog.showModalDialog杂记2
- SharePoint 2010中, SPEventReceiverBase.EnableEventFiring和DisableEventFiring都已废弃(obsolete), 应使用SPEventReceiverBase.EventFiringEnabled
- SharePoint 2010 UI 定制化系列之定制Ribbon UI操作: 如何使用SharePoint Designer 2010定制Ribbon UI操作
- 在bootstrap modal dialog中使用webupload,打不开对话框问题解决
- 使用SharePoint 2010模式对话框
- 【Android 开发】:UI控件之 TimePickerDialog 时间对话框的使用
- 使用SharePoint 2010 对话框模式
- Sharepoint 2010 对话框框架
- 使用SharePoint 2010模式对话框
- Android UI基础之Dialog对话框的使用