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();

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

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

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

每日总结:DIV弹层遮盖、DIV设置透明背景色、JS调用SharePoint 中的SP.UI.ModalDialog弹出遮盖层显示

前言: 这是在上周的工作中的一些小心得,平时用到的地方也很多,希望可以给大家一些启发和帮助。 1、 DIV弹出层遮盖 解析: 这是一个比较常见问题,有很多的网站的注册、或者登录都是用这种弹出遮...

SharePoint 2010 突然丢失权限

SharePoint2010突然丢失所有用户权限;主要是备份强制中断导致;备份时,锁住了文件和数据,只有备份完才解锁,如果强制中断,需要手动解锁;...
  • yang_5
  • yang_5
  • 2015年02月03日 13:54
  • 1321

SharePoint 2010 类似人人网站内信功能实施

简介:用SharePoint代码加实施的方式,完成类似人人网站内信功能,当然,实现的比较简单,样式也比较难看,只为给大家一个实施的简单思路,如有谬误,还请见谅。当然,还有就是截图比较长,当然为了让大家...

如何让sharepoint2010网站根据权限隐藏ribbon

项目要求让普通用户看不到“网站操作”,为了解决该问题,我找了好几篇博客,但都是sharepoint2007,按照sharepoint designer签出,签入,审批,发布。可能是sharepoint...
  • dz45693
  • dz45693
  • 2014年07月09日 22:30
  • 1503

设置SharePoint2010列表的项目级权限

转:http://www.cfanz.cn/?c=article&a=read&id=24096   在SharePoint2010中我们经常会用到这样的权限设置,在一个列表中可以存储多个人输入的...
  • jackljf
  • jackljf
  • 2013年12月10日 16:41
  • 935

根据权限显示隐藏SharePoint 2010快速启动栏的链接

转:http://www.360sps.com/Item/ShowAndHiddenLink.aspx 在SharePoint 2010的快速启动栏中可以根据权限来显示或隐藏列表、库、网站的链接,如...
  • jackljf
  • jackljf
  • 2014年02月28日 21:28
  • 698

SharePoint 2010 隐藏个人操作Personal Action的部分内容(右上角下拉菜单)

最近有个需求是隐藏个人操作Personal Action的部分内容(右上角下拉菜单),研究了一下需要更改Welcome.ascx文件。...

SharePoint 2010 WSP包部署过程中究竟发生什么?

转:http://www.xue163.com/158/6/1585365.html 在SharePoint 2010中,我们可以使用Visual Studio 2010轻松创建WSP包来安装Web...
  • jackljf
  • jackljf
  • 2014年01月06日 23:36
  • 572

在 SharePoint 2010 中访问数据

转:http://blog.banysky.net/?p=81001 数据访问的关键方法有哪些? | 使用查询类 | 使用 SPQuery | 使用 SPSiteDataQuery | 使用...
  • jackljf
  • jackljf
  • 2013年12月07日 20:31
  • 1040

在SharePoint 2010中配置发送到连接可以向任意位置发送文档

在SharePoint 2010中配置发送到连接可以向任意位置发送文档 在SharePoint 2010中可以使用“发送到”功能将文档运送到指定的库或记录中心网站中。在SharePoint 2010...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sharepoint2010 ModalDialog
举报原因:
原因补充:

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