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

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

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

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

相关文章推荐

SharePoint 2010中如何彻底删除用户

以前我们在SharePoint 2007 中想要把一个用户从网站集中彻底删除的话,可以通过选择Site Actions—Site Settings—User and Permission—All pe...

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

在SharePoint 2010中配置发送到连接可以向任意位置发送文档 在SharePoint 2010中可以使用“发送到”功能将文档运送到指定的库或记录中心网站中。在SharePoint 2010...

SharePoint 2010 WebPart Web部件 总贴

之前写的SharePoint WebPart Web部件相关的博客,没有做一个索引,导致网友在查看的时候很不方便,于是这里我做一个总贴。

sharepoint2010上传文档报文件过大的解决方案

How To Change The maximum file size Upload in SharePoint 2010   This morning I tried to upload ...

为SharePoint 2010 Workflow 开发 Custom(自定义的) Workflow Activity

为SharePoint 2010 Workflow 开发 Custom Workflow Activity(Develop Custom Workflow Activity for SharePoin...

VS2010开发和部署Sharepoint EventHandler。

最近在学习做Sharepoin项目开发,还是把学到的东西记录下来便于积累!   因为不知道VS2010 Sharepoint 有EventReciver这个添加项,走了很多弯路。   步骤: 1.建立...

SharePoint 2010 自定义状态机工作流(StateMachine Workflow) + InfoPath 实例part2 (InfoPath设计部分及演示效果)

SharePoint 2010 自定义状态机工作流(StateMachine Workflow) + InfoPath 实例part2 (InfoPath设计部分及演示效果) 1.      启动 ...

SharePoint 2010 禁用列表或文档库新建文件夹命令的三种方法

前面的文章里分别介绍了如何通过TrimById及Css来隐藏Ribbon菜单命令项或Ribbon菜单,文章链接如下: http://blog.csdn.net/sygwin_net/article/...

详细配置SharePoint Foundation 2010基于表单的验证支持

原文地址:http://blog.csdn.net/baiguli/article/details/5847981 其它例子:http://winsystem.ctocio.com.cn/42/11...

SharePoint 2010 子站点迁移到新站点集的根站点

SharePoint 2010 子站点迁移到跟站点的流程。 注意文章中subsite 指的是站点集的链接,subsite是子站点的链接。 站点结构如 : http://site/subsite...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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