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

MOSS2007基础:Windows SharePoint Services 3.0中的Web Part

开发人员扩展WSS 2.0站点的最常使用的方式就是开发自定义的Web部件。Web部件绝对是一个伟大的发明,因为她可以允许我们随意在页面里增加用户自定义的元素或实现个性化。因此,已经有很多MS或第三方公司开发了许多基于WSS 2.0的自定义Web部件。
因为WSS 2.0中Web部件的成功,所以MS才决定在ASP.NET 2.0中增加对开发自定义Web部件的支持。这使得更多的开发人员可以在他们的ASP.NET应用中使用这一出色的特性,而且完全可以脱离WSS 2.0环境。
因此,现在有两种不同的Web部件。老的WSS风格的WebPart依赖于Microsoft.SharePoint.dll,必须继承自WSS 2.0所定义的WebPart基类,其命名空间为Microsoft.SharePoint.WebPartPages。新的ASP风格WebPart依赖于System.Web.dll,必须继承自不同的一个由ASP.NET 2.0定义的WebPart基类,其命名空间为System.Web.UI.WebControls.WebParts。
有一个大家听了绝对高兴的消息。在WSS 3.0中既可以使用老的WSS风格的WebPart,又可以使用新的ASP风格WebPart。这是通过将WSS 3.0支持的WebPart建立在顶层的ASP.NET Web Part结构基础上,重新编写Microsoft.SharePoint.dll而实现的。这样WSS 3.0运行时环境将兼容专为WSS 2.0编写的WebPart。
为了向大家解释WebPart如何载入并在WSS 3.0中运行,下面将讨论一下WSS 3.0是如何被重新在ASP.NET 2.0的WebPart基础上设计构建的。我将深入WSS 3.0内部,看看它的Web部件页是如何组织的。接下来的日志中我们再研究在WSS 3.0中开发自定义WebPart的细节。(敬请关注)
想要在一个ASP.NET 2.0的应用中使用WebPart,我们必须创建一个.aspx页面并包括一个WebPartManager控件和至少一个WebPartZone控件。WebPartManager控件负责将WebPart相关的数据序列化,进而实现存取。要知道,所有的这些数据都是要进入ASP.NET服务的数据库的。
该.aspx页面作为一个Web部件页也可以包括Editor Parts,它将允许用户对WebPart进行定制和个性化WebPart属性。也可以包括一个Catalog Parts,它将允许用户添加新的WebPart到Web部件区域中。如果希望了解更多关于ASP.NET 2.0种内功个性化和自定义WebPart的内容,您可以参考msdn。(http://msdn.microsoft.com/msdnmag/issues/05/09/WebParts)
在WSS 3.0中的WebPart是架构在一个名为SPWebPartManager的控件基础上的,它本身源于ASP.NET 2.0的WebPartManager控件。SPWebPartManager控件重写了WebPartManager控件的许多标准方法,使得WebPart数据存到WSS的内容数据库中,而不是ASP.NET的服务数据库中。当然,通常情况下我们并不需要关心这些。只要交给SPWebPartManager控件处理就可以了,而且这个并且这仅需的一个控件实例已经包括到母版页default.master中了,我们的创建的内容页面都已继承了该母版。
其他几个典型的WSS 3.0Web部件页中的控件包括Web Part zones,Editor Parts和Catalog Parts。需要注意的是,在WSS 3.0Web部件页中使用的Web Part zones必须用由Microsoft.SharePoint.WebPartPages命名空间定义的WebPartZone控件来创建,而不是标准的ASP.NET 2.0中的WebPartZone控件。
WebPartZone控件的实例通常在内容页面中来定义。下面的示例代码显示了如何创建一个内容页面,并设计其成为一个WSS 3.0站点中的Web部件页。可以看到,该.aspx页面链接到default.master,同时它继承自WebPartPage基类,在占位符PlaceHolderMain中包括了两个WebPartZone控件。

<% @AssemblyName = " [Microsoft.SharePoint.dll的完全限定名称] " %>
<% Pagelanguage = " c# " MasterPageFile = " ~masterurl/default.master " Inherits = " Microsoft.SharePoint.WebPartPages.WebPartPage " %>
<% @RegisterTagprefix = " WebPartPages " Namespace = " Microsoft.SharePoint.WebPartPages " Assembly = " [Microsoft.SharePoint.dll的完全限定名称] " %>

< asp:Content ContentPlaceHolderId ="PlaceHolderMain" runat ="server" >
< h3 > 我的自定义Web部件页 </ h3 >
< table border ="0" cellpadding ="3" cellspacing ="0" >
< tr >
< td valign ="top" >
< WebPartPages:WebPartZone runat ="server" ID ="Left" Title ="左侧区域" />
</ td >
< td valign ="top" >
< WebPartPages:WebPartZone runat ="server" ID ="Right" Title ="右侧区域" />
</ td >
</ tr >
</ table >
</ asp:Content >

当我们创建一个标准的ASP.NET 2.0应用程序中的Web部件页时,我们必须添加与WebPartManager控件交互的逻辑,用来管理WebPart显示的模式。通常情况下,我们还需要明确添加Editor Parts和Catalog Parts到页面的HTML布局中并做相应的调整。但如果在WSS 3.0站点的内容页面里,我们就不必做这些事情了。我们只要从Microsoft.SharePoint.WebPartPages命名空间中继承WebPartPage类,所以这些事都交给它在后台完成就好了。当用户进入页面编辑模式后,Editor Parts或Catalog Parts就会自动出现在右侧,供用户来添加WebPart到Web部件区域或更改已有的WebPart属性。

相关文章:

  • 输入代码自动生成流程图_输入示例,自动生成代码:TensorFlow官方工具TF-Coder已开源...
  • MOSS 2007基础:WSS 3.0 中的母版页(Master Pages)和内容页(Content Pages)
  • recyclerview嵌套recyclerview_阿里3轮面试都问了RecyclerView
  • 更改某用户个人网站的配额设置
  • python语音录音_同时从麦克风录制音频并用python播放
  • 隐藏自定义列表中的某些栏
  • python生成多级文件夹_利用 python 遍历多级文件夹处理不同文件
  • python去除视频中的logo_视频去水印神器(Easy Video Logo Remover)
  • MOSS 2007基础:内容类型(Content Type)
  • python 第三方包自动导入_Python第三方包的导入
  • SharePoint高级内容--访问群体对象模型的开发之一
  • php soap 两个版本_zabbix-第一章-第三节 LNMP之PHP搭建
  • SharePoint高级内容--访问群体对象模型的开发之二
  • 批量修改的后台代码_如何用WordPress自带的批量编辑功能修改文章分类目录?
  • postman压力测试_如何用Postman做接口自动化测试?
  • Google 是如何开发 Web 框架的
  • 2017 年终总结 —— 在路上
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • git 常用命令
  • Javascript 原型链
  • Java超时控制的实现
  • Java多线程(4):使用线程池执行定时任务
  • leetcode386. Lexicographical Numbers
  • React Transition Group -- Transition 组件
  • Sass Day-01
  • spring boot下thymeleaf全局静态变量配置
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Vue UI框架库开发介绍
  • 从setTimeout-setInterval看JS线程
  • 对象管理器(defineProperty)学习笔记
  • 对象引论
  • 观察者模式实现非直接耦合
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 盘点那些不知名却常用的 Git 操作
  • 驱动程序原理
  • 如何选择开源的机器学习框架?
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 手写一个CommonJS打包工具(一)
  • 微服务入门【系列视频课程】
  • 详解移动APP与web APP的区别
  • 新书推荐|Windows黑客编程技术详解
  • 怎么将电脑中的声音录制成WAV格式
  • ​configparser --- 配置文件解析器​
  • ​Java并发新构件之Exchanger
  • ​TypeScript都不会用,也敢说会前端?
  • #includecmath
  • (3)nginx 配置(nginx.conf)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (SpringBoot)第七章:SpringBoot日志文件
  • (翻译)terry crowley: 写给程序员
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (规划)24届春招和25届暑假实习路线准备规划
  • (十六)串口UART