当前位置: 首页 > news >正文

SharePoint 2013 弹窗效果之本地HTML打开方式(二)

  上一篇我们主要讲述如何通过showModalDialog方法进行弹出窗体,同时弹出信息定义在新的页面(Application Page),使用

SP.UI.$create_DialogOptions()里的url属性进行定义,在该文章中我们将介绍如何自定义弹出框中的信息(通过HTML)。

  什么时候使用SP.UI.$create_DialogOptions()里的html属性,主编建议在以下两种情况下可以使用,如果有朋友觉得还有更好的办法,您也可以提出您宝贵的意见供大家学习及参考。第一种:当在页面中需要传递大量数据到弹出页面时,因为url有最大长度限制, 第二种: 详细页面里的数据简单,你也可以使用该方法。

  接下来我们将讲解如何使用SP.UI.ModalDialog类提供了对话框框架的定义(html属性)。

Steps:

  1. 首先我们需要定义弹出框里的信息样式,这里主编放一个Table来存放数据,里面的数据可以通过拼接字符串的格式也可以通过Json
  • 拆分字符串并拼接到Table中
 1  function openProductNameDialog(obj) {
 2         var listItemInfo = '';
 3         var gridHtml = '';
 4         
 5         // 将数据信息拆分
 6         var productsList = (obj.text + "").split(',');
 7         
 8         // 将所有数据依次放在table中
 9         for (i = 0; i < productsList.length; i++) {
10             listItemInfo += '<TR class="ms-alternating ms-itmhover" setEdgeBorder="true">' +
11                         '<TD class=ms-vb2>' + productsList[i] + '</TD></TR>';
12         }
13 
14         // 定义Table并拼接
15         gridHtml = '<TABLE id="typicalProductsTable" class=ms-listviewtable border=0 cellSpacing=0 summary="Operation history" cellPadding=1 width="100%">' +
16                       '<TBODY><TR class="ms-viewheadertr ms-vhltr" vAlign=top>' +
17                       '<TH class=ms-vh2 scope=col noWrap>Typical Product(s)</TH>' + listItemInfo.toString() +
18                       '</TR></TBODY></TABLE>';
19 
20 
21         var htmlTitle = "<div id='typicalProductDetial'></div>";
22         $('body').append(htmlTitle);
23 
24         $("#typicalProductDetial").html(gridHtml);
25 }
View Code
  • 通过Json解读数据并拼接到Table中
 1 // 获取SharePoint List中需要显示的数据,该数据必须是Json格式,这里不做任何讲解
 2 var queryResult = oListItem.get_item('Result');
 3 
 4 $("body").append("<div id='result'></div>");
 5 $("#result").html(queryResult); //需要将该数据转变成html的形式
 6 
 7 var relstring = $("#result").find("div[class^='ExternalClass']").text(); //获取数据值
 8 
 9 
10 var resultList = $.parseJSON(relstring); // 解析json
11 
12 // 将数据拼接到Table中
13  for (var i = 0; i < resultList.length; i++) {
14             listItemInfo += '<TR class="ms-alternating ms-itmhover" setEdgeBorder="true">' +
15                         '<TD class=ms-vb2>' + resultList[i].StdNum + '</TD>' +
16                         '<TD class=ms-vb2>' + resultList[i].ChineseName + '</TD>' +
17                         '<TD class=ms-vb2>' + resultList[i].EnglishName + '</TD>' +
18                         '<TD class=ms-vb2 style="word-wrap:break-word; word-break:break-all;">' + resultList[i].ProductType + '</TD></TR>';
19         }
20 
21 // 定义Table
22 gridHtml = '<TABLE id="operationQueryLogTable" class=ms-listviewtable border=0 cellSpacing=0 summary="Operation history" cellPadding=1 width="100%">' +
23                        '<TBODY><TR class="ms-viewheadertr ms-vhltr" vAlign=top>' +
24                        '<TH class=ms-vh2 scope=col noWrap>Std/Reg No.</TH>' +
25                        '<TH class=ms-vh2 scope=col noWrap>Std/Reg Title in Chinese</TH>' +
26                        '<TH class=ms-vh2 scope=col noWrap>Std/Reg Title in English</TH>' +
27                        '<TH class=ms-vh2 scope=col noWrap>Impact on Product Type</TH>' + listItemInfo.toString() +
28                        '</TR></TBODY></TABLE>';
View Code

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

1 var options = SP.UI.$create_DialogOptions();
2 options.title = "Typical Product(s)"; // 定义窗体上的标题
3 options.html = document.getElementById("typicalProductDetial"); // 在step1中定义的html
4 options.showClose = true; //是否显示close状态
5 options.height = 500; // 定义窗体的高度
6 options.width = 500; // 定义窗体的宽度
7 
8 SP.UI.ModalDialog.showModalDialog(options); 
View Code

 

  

转载于:https://www.cnblogs.com/mystar/p/4073863.html

相关文章:

  • NoClassDefFoundError: org/aspectj/lang/JoinPoint
  • Java ResultSet的getRow()
  • 当接口被调用时使用Spring拦截器注入运行时数据
  • validatebox实现多重规则验证
  • Spring MVC的RequestContextHolder使用误区
  • 面对问题时尽量避免的两种思维
  • jQuery API 中文文档
  • 在iptables防火墙下开启vsftpd的端口
  • 包装类型的存在便于了集合类添加原生数据
  • linux mysql 相关操作命令
  • SSH 原理和公匙私匙
  • Programming C#.Classes and Objects.只读字段
  • 设计模式 博客
  • CentOS安装Docker报错文件冲突的解决方法
  • 20141111
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【剑指offer】让抽象问题具体化
  • Apache Spark Streaming 使用实例
  • download使用浅析
  • dva中组件的懒加载
  • egg(89)--egg之redis的发布和订阅
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Mybatis初体验
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Mysql数据库的条件查询语句
  • Nodejs和JavaWeb协助开发
  • Terraform入门 - 1. 安装Terraform
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 安卓应用性能调试和优化经验分享
  • 动态规划入门(以爬楼梯为例)
  • 坑!为什么View.startAnimation不起作用?
  • 三栏布局总结
  • 使用权重正则化较少模型过拟合
  • ionic异常记录
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • #{}和${}的区别是什么 -- java面试
  • #mysql 8.0 踩坑日记
  • #pragma once
  • (利用IDEA+Maven)定制属于自己的jar包
  • (一)基于IDEA的JAVA基础1
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)编辑寄语:因为爱心,所以美丽
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET多线程执行函数
  • .NET是什么
  • .so文件(linux系统)
  • @hook扩展分析
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码