设为首页 收藏本站
查看: 1080|回复: 0

[经验分享] 使用SharePoint 2010模式对话框

[复制链接]

尚未签到

发表于 2015-9-24 09:45:10 | 显示全部楼层 |阅读模式
  SharePoint 2010引入了全新的对话框框架,它可以帮助用户在不需要离开当前页面的情况下浏览相关的页面。下面的显示表单就是一个弹出式的模式对话框:
DSC0000.png
  在客户端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方法就可以在页面上显示一条状态信息。
  现在可以进行部署了,部署好后点击自定义操作&#8220;修改密码&#8221;
DSC0001.png
  你可以得到一个弹出对话框,并且打开了我们在对话框选项中设置的应用程序页面:
DSC0002.png
  为了响应该模式对话框的&#8220;确认&#8221;和&#8220;取消&#8221; 操作,我们在&#8220;修改密码&#8221;按钮和&#8220;取消&#8221;按钮的点击事件中编写了相应的代码:
  


this.Page.Response.Clear();
this.Page.Response.Write("
<script type=\"text/javascript\">window.frameElement.commonModalDialogClose(1, 1);</script>");  
  
  this.Page.Response.End();
  如果执行成功,你将看到下列状态信息:
DSC0003.png
  如果失败,你将看到如下的状态信息:
DSC0004.png
  另外一种对话框的显示方式请参考这篇博文。其中讲述了如何通过对话框显示当前页面中的内容。
  
  参考资料
  Using the SharePoint 2010 Modal Dialog

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118055-1-1.html 上篇帖子: SharePoint 2010工作流系列(3):初窥Visio 2010中SharePoint工作流功能 下篇帖子: 在SharePoint 2010中使用表单认证
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表