sharepoint2010 ModalDialog

转载 2012年03月23日 13:49:21

在客户端Javascript对象模型中的SP.UI.ModalDialog类提供了对话框框架的定义。

为了使用对话框框架,我们需要首先创建该对话框的选项:

var options = SP.UI.$create_DialogOptions();
options.width 
= 500;
options.height 
= 250;
options.url 
= "/_layouts/StandardsPortal/ChangePassword.aspx";
options.dialogReturnValueCallback 
= Function.createDelegate(

                    null, portal_modalDialogClosedCallback); 

正如你从上面的代码可以看到的,我们可以设置模式对话框加载时的宽度,高度、URL指向何处(本例中为一个后台自定义应用程序页面)。  请注意,我们同时还初始化了回调函数。

一旦选项设置完成,你现在就可以显示模式对话框了: 

SP.UI.ModalDialog.showModalDialog(options);

现在,包装所有的代码到一个函数中:

function portal_openModalDialog() {
var options = SP.UI.$create_DialogOptions();
options.width = 500;
options.height = 250;
options.url = "/_layouts/StandardsPortal/ChangePassword.aspx";
options.dialogReturnValueCallback = Function.createDelegate(
null, portal_modalDialogClosedCallback);
SP.UI.ModalDialog.showModalDialog(options); 

 

}

现在你就可以从你的自定义操作中,或者从你的自定义页面中的WebPart,或者从你的自定义功能区按钮中调用该JavaScript函数。以下为自定义操作的XML:

<CustomAction
Id="{F93B1F84-1DBE-4C10-82E3-2CA47346359E}"
Title="修改密码"
Description="修改您的密码"
Sequence="1000"
Location="Microsoft.SharePoint.StandardMenu"
GroupId="PersonalActions"
ImageUrl="~sitecollection/_layouts/images/menulistsettings.gif">
<UrlAction Url="javascript:portal_openModalDialog();"/>
</CustomAction> 

 

请注意我们如何调用该JavaScript对话框:

<UrlAction Url="javascript:portal_openModalDialog();"/>

以下是该对话框的回调函数的代码(实际上非常简单):

function portal_modalDialogClosedCallback(result, value) {
if (value == '1') {
this.statusId = SP.UI
.Status
.addStatus("密码已修改",
"您的密码已修改。下次登录时请您使用修改后的密码。",
true);
SP.UI.Status.setStatusPriColor(this.statusId, "Green");
}
if (value == '0') {
this.statusId = SP.UI
.Status
.addStatus("密码修改失败",
"您的密码<b>未</b>修改。请重试。", ",
true);
SP.UI.Status.setStatusPriColor(this.statusId, "Green");
}
setTimeout(RemoveStatus, 6000);
}
function RemoveStatus() {
SP.UI.Status.removeStatus(this.statusId); 

 

}

正如你所见,通过传回单一的值,我们可以基于该值检查并显示状态。你也可以通过判断属性值SP.UI.DialogResult.OKSP.UI.DialogRelut.cancel得到对话框的结果:

  function CloseCallback(result, value) {

 if(result === SP.UI.DialogResult.OK) {
alert("点击了确定!");
}
if(result === SP.UI.DialogResult.cancel) {
alert("点击了取消!");
}
}

 

只需要简单的调用SP.UI.Status.addStstus方法就可以在页面上显示一条状态信息。

现在可以进行部署了,部署好后点击自定义操作“修改密码”

你可以得到一个弹出对话框,并且打开了我们在对话框选项中设置的应用程序页面:

为了响应该模式对话框的“确认”和“取消” 操作,我们在“修改密码”按钮和“取消”按钮的点击事件中编写了相应的代码:

this.Page.Response.Clear();
this.Page.Response.Write("
<script type=\"text/javascript\">window.frameElement.commonModalDialogClose(1, 1);</script>");  

 

this.Page.Response.End();

如果执行成功,你将看到下列状态信息:

如果失败,你将看到如下的状态信息: 

另外一种对话框的显示方式请参考这篇博文。其中讲述了如何通过对话框显示当前页面中的内容。

easyui modalDialog 自定义buttons隐藏问题

项目过程碰到需要隐藏modalDialog弹窗按钮问题,解决方法如下: parent.$.fastModalDialog({ dialogID : "report", iconCls: "ic...
  • u012939235
  • u012939235
  • 2016年10月12日 16:46
  • 3604

14步完成SharePointServer2010企业版安装

14步完成SharePointServer2010企业版安装     PS:感觉整个安装过程还是非常顺利并且安装速度也是非常快,好的话半个小时左右搞定. 本文主题:SharePoint ...
  • foreveryday007
  • foreveryday007
  • 2013年04月09日 11:10
  • 4059

SharePoint 2010 中启动web应用程序报错:未能加载文件或程序集'Microsoft.SharePoint.Sandbox.dll .

在VS2010中创建web应用程序,然后添加引用C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAP...
  • lingpaoershiyishiji
  • lingpaoershiyishiji
  • 2013年04月28日 13:49
  • 1467

获取ModalDialog窗口关闭后返回的值

说明:下列代码中:红色标记的window.returnValue即为返回的值//弹出窗口,下拉框选择条件 function openWinForSel(obj,swidth,sheight){    ...
  • Solidwang
  • Solidwang
  • 2009年12月01日 18:07
  • 3101

jquery easyui dialog问题

在jquery easyui的使用过程中,you
  • sd_tz_123
  • sd_tz_123
  • 2014年09月04日 10:38
  • 3140

SharePoint 2010管理中心创建网站集

必须以管理员的身份登录SharePoint 2010管理中心主页,依次点击“应用程序管理”à“创建网站集”,如图1所示:   图1 在图1中,鼠标放在“创建网站集”链接上,提示为“新建顶级网站”...
  • u012025054
  • u012025054
  • 2014年04月02日 10:54
  • 1821

shwoModalDialog弹出窗的属性

弹出窗口的属性里定义属性(网速慢,稍后将修改文字格式)   window.showModelDialog("url","name","参数:值;参数:值;……")   url:对话框窗口链接地...
  • a4562116
  • a4562116
  • 2015年08月26日 11:53
  • 680

Sharepoint报错:未找到文件,未添加引用集等问题

“Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory”的...
  • baobaolaogong
  • baobaolaogong
  • 2012年09月04日 18:55
  • 2299

IE8以上showModalDialog请求页面响应弹出页面

怎样让showModalDialog弹出的页面中响应服务器控件事件而不弹出新页面 我用showModalDialog弹出一个页面,在这个页面中执行了一个按钮的Onclick事件,但是却弹出一个新的正...
  • willie_chen
  • willie_chen
  • 2014年02月25日 10:40
  • 811

SharePoint2010新特性:InfoPath定义创建列表的界面

转:http://www.cnblogs.com/studyzy/p/3339743.html 在SharePoint2007的时候,自定义的列表可以使用CAML修改其展示页面,但是对于创建列表的页...
  • jackljf
  • jackljf
  • 2014年03月01日 10:59
  • 449
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sharepoint2010 ModalDialog
举报原因:
原因补充:

(最多只允许输入30个字)