我们都知道,在SharePoint中,Content page继承自Page layout,而Page layout又继承自Master page。Master page的作用大家都知道,它定义了站点的的整体外观和公共元素,因此有了很强的页面重用性和很好的页面编辑体验,Page layout通过ContentPlaceHolder为一些内容相似性很强的页面进行了布局,所以到了Content page那里,我们所做的只是放我们每个页面想要显示的内容即可,剩下的布局和样式都可以不用操心了。

好了,前面算是开场白吧!现在我们正式说重点,先从需求说起,客户要求整个站点的Footer部分要求从站点的List里面动态读取数据来生成它,而不是写死在master page里面,例如下面的图示,也就是说客户希望将来他们可以通过维护一个List数据来动态更新站点的Footer部分,附加排序,是否显示等功能,都有List里面的某个字段来控制,而不再需要有IT人员去更新了。

对于这个需求,我们可以有如下几种实现方式:

(一)  首先想到的是写一个Customized User Control,通过调用Object Model来呈现数据。部署完了dll以后,需要在Master Page里注册引用,然后才能去使用它,这里不再多说具体过程。这种方法好是好,但是不易维护,如果有任何逻辑改动,还需要重新部署dll到服务器端,很多时候不是很方便。

(二)  第二种方式是借助于Content Query Web Part,有人会说Master Page里面可以放Web part吗?动态的web part是不能加到Master page里的,因为Master page的内容是不允许从页面上修改的,但是我们可以放静态的web part,所谓静态的就是说web part不在web part zone里面。具体步骤如下:

1.  先建一个临时的测试页面,添加一个Content Query Web Part, 然后配置web part,如数据源,过滤条件及排序等属性。

2.  用SPD将次页面跟layout分离,然后打开它,找到相应的web part zone,我们发现zone里面是一个<PublishingWebControls:ContentByQueryWebPart>,其实它就是一个控件,将此控件拷贝出来放到Master page相应的html元素中即可,注意不要web part zone。

3.  更新List数据并刷新页面可以看到Footer是动态变化的了。注意:有时候换了环境可能会出现这个错误:There is a problem with the query that this Web Part is issuing. Check the configuration of this Web Part and try again. 这是因为ListGUID变了,所以必要的时候我们可以通过ListUrl和ListName属性来控制,而不再使用ListGUID。

(三)  第三种方式也是借助web part,只不过换成是Data View Web Part,所以跟第二种方式大体上应该差不多,就不再细说了。

以上几种方式,各有优缺点,相对来讲,第二种或第三种更容易维护,因为他们是OOB的,不涉及到服务器端代码,如果客户不让写服务器端代码,那么此时选择后者再合适不过了。也许还有其他更好的方式,有待探究。

转载于:https://www.cnblogs.com/crazysharepoint/archive/2010/11/30/masterpage-list.html

SharePoint要在master page中动态显示List数据的几种方式相关推荐

  1. html中获取modelandview中的json数据_从Bitmap中获取YUV数据的两种方式

    从Bitmap中我们能获取到的是RGB颜色分量,当需要获取YUV数据的时候,则需要先提取R,G,B分量的值,然后将RGB转化为YUV(根据具体的YUV的排列格式做相应的Y,U,V分量的排列) 所以这篇 ...

  2. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

  3. 【Matlab系列】MATLAB中显示输出数据的四种方式

    DATE: 2019-11-13 1.参考 MATLAB 显示输出数据的三种方式 Matlab之print,fprint,fscanf,disp函数 2.改变数据格式 当数据重复再命令行窗口时,整数以 ...

  4. Spring MVC中返回JSON数据的几种方式

    我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继 ...

  5. TensorFlow中读取图像数据的三种方式(转)

    附加一个链接关于DatasetAPI:https://zhuanlan.zhihu.com/p/30751039 本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和 ...

  6. Hive中删除表数据的几种方式

    在内部表中 仅删除表中数据,保留表结构 方法一 truncate table 表名; (truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的) truncate 不能删除外部表 ...

  7. 在.NET Core 中收集数据的几种方式

    APM是一种应用性能监控工具,可以帮助理解系统行为, 用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题, 通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理 ...

  8. 面试中sql调优的几种方式_面试方式

    面试中sql调优的几种方式 The first question I ask someone in an interview for a cybersecurity position is, &quo ...

  9. 一、目前在ASP.NET中页面传值共有这么几种方式:

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交,    <form action= "target.aspx" method = "post&q ...

最新文章

  1. dede login.php,DedeCms会员登录成功,又跳转到登录页面
  2. 两张图看懂GDT、GDTR、LDT、LDTR的关系
  3. android中setdate不是静态,为什么当setData()和setType()不起作用时,android intent的setDataAndType()工作正常?...
  4. Batch Norm常用方法
  5. python的类程序的结构_python(8)---程序结构
  6. 文件管理英文html,Directory Opus
  7. Codeforces Manthan, Codefest 18 (rated, Div. 1 + Div. 2) E.Trips
  8. python字符串索引必须是整数_python – TypeError:字符串索引必须是整数...
  9. 北理乐学大学计算机实验4,北理工乐学上机实验五
  10. Silverlight 4 Tools for Visual Studio 2010手动一步一步安装
  11. sm4 前后端 加密_sm4加密
  12. 概率图模型(快速入门必备)
  13. 计算机电缆和屏蔽线的区别,屏蔽线
  14. 奥的斯服务器状态显示,OTIS服务器(TT)查看故障及清除故障的方法
  15. 用户主页个性域名技术实现
  16. 中山マミ - 咲く未来
  17. React受控非受控组件详解,PureComponent介绍,Refs, children属性详解
  18. 不愧是阿里P8!深入理解Java虚拟机pdf百度云
  19. Android FrameWork 学习之Android 系统源码调试
  20. Nginx的部署与配置

热门文章

  1. react学习(8)----数组方法fliter简介
  2. 前端学习(3075):vue+element今日头条管理-反馈
  3. [html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢?
  4. [html] 网站如何自适应手机屏幕
  5. [vue] vue性能的优化的方法有哪些?
  6. 前端学习(2516):传值和引用
  7. 前端学习(1858)vue之电商管理系统电商系统之分析登录页面的布局结构
  8. 前端学习(1147):ES6学习目标
  9. java面试题27 java中下面哪些是Object类的方法()
  10. java学习(174):constructor类反射编程