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

[经验分享] SharePoint中的列表(List) 与Content Type 之四

[复制链接]

尚未签到

发表于 2015-9-28 13:37:30 | 显示全部楼层 |阅读模式
  创建自定义的列表元素
  =================

  使用用户界面创建列表, 你可以使用Site Action菜单来导航到Create->Customer Lists. 在New Page上的表单会使用Custom List Type类型来启动一个空列表的创建, 在Custom List Type中除了Title以外, 没有可以编辑的columns(也就是fields). 创建了列表之后, 你可以在settings菜单下选择Create Column来添加新的标准WSS field type. 一个field type值得是一种WSS中可以被用来存储数据的数据类型. 它跟SQL的数据类型相似(事实上它就是使用SQL data type定义的), 当然, 你还可以创建你自己的field type. 下表展示除了Create Column页面上默认的WSS field type.  
  Field Type
  描述
  Single Line Of Text
  单行文本. 允许的最大字符数是可以自定义的.
  Multiple Lines Of Text
  纯文本, 富文本(粗体, 斜体, 文本对齐), 或者增强富文本(图片, 表格, 链接) 的文本框. 富文本框在编辑模式下会显示一个rich text toolbar.  
  Choice
  你定义的多个item的选项栏
  Number
  数值. 选项包括最小, 最大, 小数位等等.
  Currency
  一个特定的货币格式的货币价值
  Date And Time
  日期信息, 或者是日期和时间信息
  Lookup
  对另一个网站列表字段的值的引用字段
  Yes/No
  一个真或假的布尔字段. 在用户界面中呈现为复选框
  Person Or Group
  当前站点的一个用户或成员. 这个域还可以显示在线与否的信息, 这里的在线指的是Windows Live Messenger或者是Office Live Communications Server.
  Hyperlink Or Picture
  URL格式的字符串
  Calculated
  从其他域计算得来的值
  
  使用CAML定义自定义列表元素
  ==================

  现在我们要一步步地完成定义site column, content type, 和list schema的过程. 如果你想要跟随我们的示例代码, 你可以在VS中打开名为LitwareTypes的工程. 这个工程包含几个不同的自定义provisioning components的例子. 如果你打开并build这个project, install.bat文件会拷贝所有需要的文件到TEMPLATES目录下, 并安装一个叫做LitwareTypes的feature. 然后你就能够与LitwareTypes feature, 在任意站点集的范围(scope)内互动了.
  
  WSS的provision components是使用CAML和HTML来定义data schema的. WSS中使用的大多数CAML元素的结构都在TEMPLATE\XML目录下的XML schema文件中定义. 你可以拷贝这些XSD文件到%ProgramFiles%\Microsoft Visual Studio 8\Xml\Schemas中, 之后你就可以在VS2005中使用IntelliSense了. 注意CAML定义在编程的时候需要一点小技巧, 需要一点debugging的支持, 所以测试是很关键的.
  
  通过Diagnostic Logging来Debug CAML
  CAML内容的定义在Visual Studio中是没有debugging支持的. 这使得开发自定义content type, lists, 还有其他provisioning components的时候让人感觉很沮丧. 然而, 你可以在Central Administration站点中开启verbose logging.
  
  尽管web界面可能是唯一展现一个模糊错误信息的地方, 类似“Exception from HRESULT: 0x81070201,” 但是diagnostic log会告诉你所需要的用来修复XML文件的细节信息, 类似这样: “Failed to retrieve the list schema for feature FBDECD96-62DC-48c88F0A-7B827A042FD9, list template 10001; expected to find it at: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Features\LitwareTypes\VendorList.”  
  小提示: Visual Studio 2005 extensions for Windows SharePoint Services 3.0是一个生成轻量级provisioning components的强大的工具. 你可以使用它来作为手工制作provisioning component的起点. 但是有一些WSS3.0新引入的feature是不支持的.
  
  定义Site Column Definition
  ======================

  List在columns(也称为filelds)中存储他们的数据, columns是可以在list的上下文中定义. WSS 3.0还引入了site columns, 这使得我们可以以一种可以重用的方式来定义一个field. 为了不定义一个比方说叫做first name的field好多次.WSS 可以在一个叫做fields的feature中定义site column一次. 下面的代码展现了FirstName site column是如何使用CAML在一个Field 元素中被定义的.<Field ID="{}"
Name="FirstName"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
StaticName="FirstName"
Group="$Resources:Person_Event_Columns"
DisplayName="$Resources:core,First_Name;"
Type="Text">
</Field>
  小提示: 内建的columns是定义在feature: "fields" 中的, 当你创建你自己column定义的时候, 这个fields feature可以是一个很好的参考.
  
  在上面的代码中, 你可以观察到FirstName site column 的基于文本的部分是使用一个特殊的, 带有“$”字符的语法定义的, 比如: $Resources:core,First_Name. 这个语法是在ASP.NET 2.0 中引入的, 它是一种方式, 帮助我们从一个资源文件中拿到本地化了的字符串. 这种为site column definition进行本地化的能力使得WSS 3.0支持位多个不同的语言提供不同语言版本的provision component的能力. Inside Microsoft Windows SharePoint Services 3.0的第九章详细介绍了这个主题.
  
  作为一个简单的例子, 我们会创建一个vendor list, 其中带有如下的columns: Company, Contact, Phone, Industry, Company Size, 和Activity Notes. 我们将使用WSS预定义的columns来配置Company, Contact, 和Phone. 然后, 我们会为Industry 和 Activity Notes 创建两个新的site column definition.
  
  LitwareTypes 工程包含一个自定义的feature, 叫做LitwareTypes. 你可以在它的Feature.xml看它. 下面的代码就是. 这个feature定义的scope是Site, 这意味着它被设计为在站点集的级别可以被激活.
  
  Custom Column Definitions<?xml version="1.0" encoding="utf-8"?>
<!-- Litware Column Types -->
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field
ID="{}"
Name="Industry"
DisplayName="Industry"
Type="Choice"
Format="RadioButtons"
Group="Litware Columns">
<CHOICES>
<CHOICE>High Tech</CHOICE>
<CHOICE>Legal</CHOICE>
<CHOICE>Medical</CHOICE>
</CHOICES>
<Default>High Tech</Default>
</Field>
<Field
ID="{}"
Type="Note"
RichText="TRUE"
AppendOnly="TRUE"
Name="ActivityNotes"
DisplayName="Activity Notes"
Sortable="FALSE"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
Group="Litware Columns">
</Field>
</Elements>  

  Industry site column definition是基于choice field type的, 它提供给了用户三种不同的可供赋值的选择. Industry site column deninition 还被指定为应该使用RadioButtons的方式渲染, 这是在Format attribute中指定的.
  
  ActivityNotes site column definition 是基于Notes field type的, 它允许用户来属于大量的文本信息, 可以跨越多行. 还要注意, 这个site column definition 还被定义为支持rich text , 以及WSS3.0引入的append-only behavior. 注意, 任何一个包含append-only site column 的列表都必须开启versioning选项, 才能让append-only这个 behavior正常工作.
  
  现在你已经看到了如何创建site column definition, 让我们看看如何让他们在WSS站点上出现. 每一个站点都有一个Site Column Gallery. 在LitwareTypes feature 在某一个Site collection中被激活之后, 我们自定义的site column definitions 会出现在顶级站点的Site Columns Gallery 中. 你可以使用内建的名为mngfield.aspx的application page来查看站点的Site Columns Gallery 中都包含些什么, 这个页面可以在Site Settings页面上的链接上点击进入.  下图展现了一个已经被添加了的site columns的例子.
DSC0000.png   

  注意, 在site column被添加到Site Column Gallery之后, 用户就可以在当前站点和所有其下的子站点中使用了. 所以, 添加site column到顶级站点的Site Column Gallery 会使得整个站点集都可以使用这个column. 这就提供了一个通过站点集scope的feature, 而不是站点scope的feature, 来添加site column definition的强烈动机,
  
  在site column definitions 被添加到站点之后, 用户可以立刻在添加column到list的时候使用它们. 下图给出了添加新column的例子:
DSC0001.png   

  如果你创建一个自定义的列表, 添加了Industry 和ActivityNotes这两个columns, 那么你就可以测试它们的行为了. 下图就是例子:
DSC0002.png   
  
  摘译自:
  Inside Microsoft Windows SharePoint Services 3.0 第六章

运维网声明 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-120053-1-1.html 上篇帖子: SharePointV3,即Office SharePoint Server 2007的一些新特性透露! 下篇帖子: SharePoint中的列表(List) 与Content Type 之二
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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