分享人:广州华软 无名

一. 前言

对SharePoint二次开发时,需要知道SharePoint有什么、没有什么,才能在开发过程中避免重复造轮子。SharePoint提供了许多开箱即用的功能,这次要介绍的就是模态窗体。

二. 目录

1.什么是模态窗体

2.模态窗体的作用

3.如何使用模态窗体

3.1前置条件

3.2模态窗体属性

3.3父窗体代码

3.4子窗体代码

4总结

三. 什么是模态窗体

所谓模态窗体,即在不离开当前页面的情况下,弹出一个新的独立子窗体,同时子窗体可以和父窗体进行互动。

在sharepoint中,模态窗体随处可见,例如文件上传功能、文件共享功能、文件审批等功能。

四. 模态窗体的作用

在不离开页面的情况下,与新窗体进行互动。

五. 如何使用模态窗体

5.1 前置条件

自定义应用程序页面,需引用SharePoint母版页

<%@ Page Language="C#" DynamicMasterPageFile="~masterurl/default.master" Inherits=" "       %>

或者,添加如下文件引用

<link rel="stylesheet" href="/_layouts/15/1033/styles/Themable/corev15.css?rev=Y" />

其中,1033 表示英语,2052表示简体中文

<SharePoint:ScriptLink Name="SP.core.js" runat="server" Defer="False" Localizable="false"/>

<SharePoint:ScriptLink Name="SP.js" runat="server" Defer="True" Localizable="false"/>

<Sharepoint:ScriptLink ID="ScriptLink1" Name="sp.ui.dialog.js" LoadAfterUI="true" Localizable="false" runat="server"></Sharepoint:ScriptLink>

5.2 模态窗体属性

标题

说明

url

子窗体url地址

html

HTML代码,和URL二选一

x

子窗体x坐标,默认居中

y

子窗体y坐标,默认居中

width

宽度

height

高度

showClose

显示关闭按钮

autoSize

自动大小

dialogReturnValueCallback

关闭模态窗体回调函数

5.3 父窗体代码

<button type=’button’ onclick=’Open1()’>弹出子窗体</button>

function Open1(){

var options = {

width: 900,//宽度

height: 550,//高度

url: “https://www.***.com?web=1” //子窗体地址

dialogReturnValueCallback: function (res, val) {

//关闭模态窗体回调函数

//约定: res 值为1 表示操作成功

// val 子窗体传递给父传递值,通过val来实现两个窗体互动

}

};

SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);

}

5.4 子窗体代码

子窗体可以不做任何操作,但如果需要传递值给父窗体,则可以通过自定义关闭子窗体来实现,参考以下代码。

<button type=’button’ onclick=’Close1()’></button>

function Close1(){

window.frameElement.commonModalDialogClose(1/*通常用1表示操作成功*/, ‘操作成功’/*返回给父窗体值,与父窗体互动*/);

}

六. 总结

SharePoint的模态窗体应用场景非常广泛,为我们开发类似功能提供了便利。

Sharepoint模态窗体(实战)的更多相关文章

  1. VB6关于判断模态窗体的问题

    模态窗体也有人叫模式窗体,是否为模态窗体由Show方法的参数决定: 语法 object.Show style, ownerform Show 方法的语法包含下列部分: 部分 描述 object 可选的 ...

  2. delphi模态窗体最小化会隐藏的问题

    在使用delphi创建模态窗体的时候最小化窗体会导致最小化的窗体不可见,再次点击主窗体才会显示. 在这个模态窗体中增加以下函数 procedure WmSysCommand(var msg: TMes ...

  3. 游戏UI框架设计(四) : 模态窗体管理

    游戏UI框架设计(四) --模态窗体管理 我们在开发UI窗体时,对于"弹出窗体"往往因为需要玩家优先处理弹出小窗体,则要求玩家不能(无法)点击"父窗体",这种窗 ...

  4. 关于DatePicker在模态窗体下失效的问题

    最近用bootstrap做了一个租赁相关的管理系统,由于前端知识薄弱,也是编查资料边做.关于一些控件的用法,也是从网上查资料.下面,来说一下在写前端页面时遇到的几个坑. 这个系统中,日期控件用的是Da ...

  5. 自制模态窗体闪烁效果: MessageBeep & FlashWindowEx

    SetFocus(hwnd_frame_preview); //设置焦点 /** 模拟模态窗口动作 **/ MessageBeep(0xFFFFFFFF); //0xFFFFFFFF SystemDe ...

  6. Delphi: 模态窗体最小化

    源起: 近期所介入的几个项目中,最后视频生成窗体,为一模态对话框.因生成时间可能较长,所以其窗体可以最小化,它最小化时同时最小化主程序,唤醒时主程序再复原. 代码亦是8年前本人所写,一直那样用了,也没 ...

  7. FMX 模态窗体

    FMX 模态窗体 dlg := TForm2.Create(nil);  dlg.ShowModal(procedure(ModalResult: TModalResult)  begin       ...

  8. Qt无边框窗体-模拟模态窗体抖动效果

    目录 一.概述 二.效果展示 三.功能实现 四.相关文章 原文链接:Qt无边框窗体-模拟模态窗体抖动效果 一.概述 用Qt开发windows客户端界面确实是一大利器,兼顾性能的同时,速度相对来说也不错 ...

  9. Electron基础 - 如何创建模态窗体

    在开发桌面端应用我们常常需要弹出一个提示窗体或者对话框,而提示窗体和对话框和普通窗体的区别是,在提示框出现时,其它窗体就被锁定了,必须要等到提示框被正确关闭时其它窗体才能“解锁”,这种类型的窗体叫做模 ...

随机推荐

  1. redis的持久化之RDB的配置和原理

    Redis优秀的性能是由于其将所有的数据都存储在内存中,同样memcached也是这样做的,内存中的数据会在服务器重启后就没有了,也就是不能保证持久化.但是为什么Redis能够脱颖而出呢,很大程度上是 ...

  2. 前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端架构师的?

    谈谈学习 我做前端已经有五年的时间了,从大学刚毕业的时候,我是一个完全什么都不懂的小白.虽然我大学里学的是软件工程专业,但是因为在大学里荒废学业,每天只知道打游戏,基本上到大学毕业之前我是什么都不会的 ...

  3. Linux文本处理命令 -- grep

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  4. 【转】tomcat logs 目录下各日志文件的含义

    tomcat每次启动时,自动在logs目录下生产以下日志文件,按照日期自动备份   localhost.2016-07-05.txt   //经常用到的文件之一 ,程序异常没有被捕获的时候抛出的地方 ...

  5. Spring 数据处理框架的演变

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 定量分析的成败在很大程度上取决于采集,存储和处理数据的能力.若能及时地向业务决策者提供深刻并可靠的数据解读,大数据项目就会有更多机会取得成功 ...

  6. HoloLens开发手记-实现3D应用启动器

    一直有人问我,第三方应用在HoloLens上可以实现3D启动图标吗?就像微软官方出的应用那样.在不久之前,这个问题的答案还是No. 但是随着最新的Windows build 1803版本的发布,现在我 ...

  7. Hexo博客搭建

    http://www.jianshu.com/p/e99ed60390a8 http://blog.csdn.net/xuezhisdc/article/details/53130328 注意点: 1 ...

  8. (二)Web应用体系结构

    容器 Servlet没有main()方法,它们受控于另一个Java应用,这个Java应用称为容器(Container).我们最常见的tomcat就是这样一个容器. Web服务器应用(如Apache)得 ...

  9. Java 学习笔记 (一) If 语句

    接触到的教程中if语句所包含boolean表达式都是以数字作为举例,所以误以为string类型的值也可以这样判断,结果发现下面的脚本不工作: String sysTitle = driver.getT ...

  10. Nodejs.调用Linux命令

    当需要Node.js在后台帮忙运行Linux命令脚本时, 可以用上以下方法 上代码 var spawn = require('child_process').spawn; free = spawn(' ...