sharepoint2010 创建自定义列表

sharepoint2010 创建自定义列表

分类: sharepoint20102014-04-04 14:06 106人阅读 评论(0) 收藏 举报

转:http://boke.25k5.com/kan77298.html

如何创建自定义列表

首先了解创建自定义列表中涉及到的几个名词:栏、内容类型

①栏:栏即列、字段(Field),MSDN中给出的解释为:“字段”一词在 SharePoint Foundation 开发中有两个关系非常密切的含义。有时它指的是列表中的列,但如果提到单个列表项,“字段”一词g 8h"@的意思与“单元格”很接近,这里的单元格是表中某一列和某一行相交的部分。在一定程度上由于这一原因,“列”和“字段”在 SharePoint Foundation 开发中实际上是同义词。在 SharePoint Foundation  中,列不仅包含特定数据类型的数据,列本身也是一种类型,因为同一列可用于具有不同数据的多个列表。列可以保存在网站栏库中。通过编程或用户界面 (UI) 可将库中的网站栏添加到网站中的任何列表。通过编程或用户界面(例如,内容类型设计器)还可以将列添加到内容类型。

②内容类型:MSDN中给出的解释为:定义 SharePoint Foundation 列表或文档库中项目类别的元数据、工作流和行为。我的理解为:将多个栏组合起来描述某一类型的集合。比如我们想新建一个关于产品的内容类型,产品可能包含的属性:ID、名称、介绍等信息,那么我们g 8h"@可以将现有的栏库中得栏(如果没有需要新建栏)组合到一块构成一个内容类型。那么这个内容类型就可以用于多个地方,每次创建只需创建此内容类型的列表即可,而不需要创建自定义类型后编辑。

下面将介绍通过编程的方式创建自定义列表:

一、新建一个Sharepoint 2010 的空白项目

二、创建内容类型(ContentType):在资源管理器中项目上点击右键—>添加新建项,选择内容类型,将其命名为Product,点击添加;会出现一个向导,在向导中选择项目,点击完成。此时会创建如图一中标注的内容类型的新项。

图(一)

打开Product的Elements.xml,<span @font-family:courier="" new;="" 并新建如下代码:

[html] view plaincopy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  3. <Field SourceID="http://schemas.microsoft.com/sharepoint/v3"
  4. ID="{36819A9B-E748-47D5-9949-A65DD195BF80}"
  5. Name="ProductDescription"
  6. DisplayName="Product Description"
  7. Group="My Custom Columns"
  8. Type="Text"
  9. DisplaceOnUpgrade="TRUE"></Field>
  10. <Field SourceID="http://schemas.microsoft.com/sharepoint/v3"
  11. ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"
  12. Name="ProductID"
  13. DisplayName="Product ID"
  14. Group="My Custom Columns"
  15. Type="Number"
  16. DisplaceOnUpgrade="TRUE"></Field>
  17. <!-- 父内容类g
  18. 8h"@型: 项目 (0x01) -->
  19. <ContentType ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"
  20. Name="Product"
  21. Group="自定义内容类型"
  22. Description="我的内容类型"
  23. Inherits="TRUE"
  24. Version="0">
  25. <FieldRefs>
  26. <FieldRef ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="ID"/>
  27. <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Product Name"/>
  28. <FieldRef ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Description"/>
  29. </FieldRefs>
  30. </ContentType>
  31. </Elements>

代码中包含的元素如下:

  1. Elements:顶级元素
  2. Field:定义网站栏<g 8h"@="" div="">
  3. ContentType:定义单个内容类型
  4. FieldRefs:表示内容类型中包括的列引用的集合
  5. FieldRef:指定要在此内容类型中引用的列 

下面主要介绍上述元素中(Field、ContentType、FieldRef)主要属性,其他属性请参见MSDN中介绍。

  1.  <Field SourceID="http://schemas.microsoft.com/sharepoint/v3"
             ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"
             Name="ProductID"
             DisplayName="Product ID"
             Group="My Custom Columns"
             Type=g 8h"@"Number"
             DisplaceOnUpgrade="TRUE"></Field>

    属性 说明
    SourceID 可选属性,类型为 Text。包含定义字段的命名空间(如 http://schemas.microsoft.com/sharepoint/v3),或者在其中创建自定义字段的列表的 GUID。
    ID 必需属性,类型为 Text。唯一标识字段。该值应是包含在括号 ({}) 内的 GUID 的字符串表示形式。
    Name 必需属性,类型为 Text。字段的内部名称。该名称在列表或网站的字段集中必须为唯一。如有必要,SharePoint Foundation 会修改该值以保证其唯一性;否则,在字段g 8h"@定义的生命周期内,其不会更改。
    DisplayName 可选属性,类型为 Text。字段的显示名称。没有空格使用限制。最大长度为 255 个字符。该值可以是格式为$Resources:String 的资源引用。该显示名称可由用户编辑并且可在初始字段创建后更改。该名称在字段显示在表视图中时用作栏标题,在字段显示在表单中时用作表单标签。
    Group 可选属性,类型为 Text。指定字段所属的栏组。
    Type 必需属性,类型为 Text。字段的数据类型
    DisplaceOnUpgrade 可选属性,类型为 Boolean。如果字段已存在字段定义,则选择 TRUE 可强制使用该字段定义中指定的值更新字段属性。
  2.   <ContentType ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"
                   Name="Product"
                   Group="自定义内容类型"
                   Description="我的内容类型"
                   Inherits="TRUE"
                   Version="0"></ContentType>

    属性 说明
    ID 必需属性,类型为g 8h"@ Text。指定内容类型的内容类型 ID。内容类型 ID 具有特定的格式。如果为ID 属性分配的值格式不正确,激活功能时将遇到错误。
    Name 必需属性,类型为 Text。指定内容类型名称。该值可以为对$Resources:String 格式的资源的引用。名称本身的长度不能超过 128 个字符,并且不能包含   / : * ? " # % < > { } | ~ & 字符、两个连续的句点 (..) 或制表符等特殊字符。 如果添加内容类型的集合中存在另一个同名内容类型,则会出现错误。
    Group 可选属性,类型为 Text。指定内容类型分配到的内容类型组。内容类型组是用户定g 8h"@的组,可帮助您将内容类型分组到逻辑类别中。该值可以为对$Resources:String 格式的资源的引用。
    Description 可选属性,类型为 Text。提供要在 SharePoint Foundation 用户界面中显示的内容类型的说明。该值可以为对$Resources:String 格式的资源的引用。
    Inherits 可选属性,类型为 Boolean。此属性的值确定创建时内容类型是否从其父内容类型继承字段。
    Version 保留以供将来使用。
  3. <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Product Name"/>
    g 8h"@

    属性 说明
    ID 必需属性,类型为 Text。指定此 FieldRef 元素引用的列的字段 ID。字段 ID 是 GUID 的字符串表示形式,包括大括号。值区分大小写。可以在位于以下路径的 fieldswss.xml 文件中查找内置字段的 ID:%ProgramFiles%Common FilesMicrosoft Sharedweb server extensions14TEMPLATEFEATURESfields。
    Name 必需属性,类型为 Text。列的名称。这是列的内部名称,并且保证在字段定义的生存期内绝不会更改此名称。它相对于列表中的字段集必须是唯一的。
    DisplayName
    必需属性,类型为 Text。列的显示名称。最大长度为 255 个字符。

    当字段在表视图中显示时,此属性的值将用作列标题;当字段在表单中显示时,此属性的值将用作表单g 8h"@标签。可以使用DisplayName 属性将显示名称更改为不同于在字段本身上定义的名称的值。

三、编写完内容类型后,创建列表定义。在资源管理器中右键项目—>添加新建项—>列表定义(ListDefinition),点击添加;此时会出现向导,将显示名称修改为ProductList,列表定义类型修改为自定义列表,保持为此列表定义添加列表实例的勾选状态,点击完成。会生成如图一中自定义列表中显示的结构。

在此结构中主要是对Schema.xml文件的编写,下面为此XML的编写后的完整代码:

[html] view plaincopy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <List xmlns:ows="Microsoft SharePoint" Title="ProductList" FolderCreation="FALSE" EnableContentTypes="TRUE"
  3. Direction="$Rg
  4. 8h"@esources:Direction;" Url="Lists/ListsAndSchemas-ProductList" BaseType="0"
  5. xmlns="http://schemas.microsoft.com/sharepoint/">
  6. <MetaData>
  7. <ContentTypes>
  8. <ContentTypeRef ID="0x01">
  9. <Folder TargetName="Item" />
  10. </ContentTypeRef>
  11. <ContentTypeRef ID="0x0120" />
  12. <ContentTypeRef ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"></ContentTypeRef>
  13. </ContentTypes>
  14. <Fields>
  15. <Field ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="ID" DisplayName="Product ID" Type="Number"></Field>
  16. <Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Product Name" Type="Text"></Field>
  17. <Field ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Description" DisplayName="Product Descritpion&qug
  18. 8h"@ot; Type="Text"></Field>
  19. </Fields>
  20. <Views>
  21. <View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">
  22. <Toolbar Type="Standard" />
  23. <XslLink Default="TRUE">main.xsl</XslLink>
  24. <RowLimit Paged="TRUE">30</RowLimit>
  25. <ViewFields>
  26. <FieldRef Name="LinkTitleNoMenu"></FieldRef>
  27. <FieldRef ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Descritpion" DisplayName="Product Description"></FieldRef>
  28. <FieldRef ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="ID" DisplayName="Product ID"></FieldRef>
  29. </ViewFields>
  30. <Query>
  31. <OrderBy>
  32. <FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
  33. </OrderByg
  34. 8h"@>
  35. </Query>
  36. <ParameterBindings>
  37. <ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
  38. <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
  39. <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_ONET_HOME)" />
  40. </ParameterBindings>
  41. </View>
  42. <View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pagesviewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
  43. <Toolbar Type="Standard" />
  44. <XslLink Default="TRUE">main.xsl</XslLink>
  45. <RowLimit Pagg
  46. 8h"@ed="TRUE">30</RowLimit>
  47. <ViewFields>
  48. <FieldRef Name="Attachments"></FieldRef>
  49. <FieldRef Name="LinkTitle"></FieldRef>
  50. <FieldRef ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="ID" DisplayName="Product ID"></FieldRef>
  51. <FieldRef ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Descritpion" DisplayName="Product Description"></FieldRef>
  52. </ViewFields>
  53. <Query>
  54. <OrderBy>
  55. <FieldRef Name="ID"></FieldRef>
  56. </OrderBy>
  57. </Query>
  58. <ParameterBindings>
  59. <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
  60. <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
  61. g
  62. 8h"@  </ParameterBindings>
  63. </View>
  64. </Views>
  65. <Forms>
  66. <Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pagesform.aspx" WebPartZoneID="Main" />
  67. <Form Type="EditForm" Url="EditForm.aspx" SetupPath="pagesform.aspx" WebPartZoneID="Main" />
  68. <Form Type="NewForm" Url="NewForm.aspx" SetupPath="pagesform.aspx" WebPartZoneID="Main" />
  69. </Forms>
  70. </MetaData>
  71. </List>

我们在此文档中添加的内容为:

  1. 在ContentTypes元素中添加<ContentTypeRef ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"></ContentTypeRef>,此处的ID必须与第二部中创建的内容模板中得ContentType的ID相同。
  2. 添加Fields集合元素
    <Fields>
          <Field ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name=&qug 8h"@ot;ID" DisplayName="Product ID" Type="Number"></Field>
          <Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Product Name" Type="Text"></Field>
          <Field ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Description" DisplayName="Product Descritpion" Type="Text"></Field>
    < /Fields>
    此元素中得ID也必须与第二步中创建的ID相同。此处定义的为此列表中包含的列。
  3. 在两个Views元素中得ViewFields元素中添加
    <FieldRef ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="ID" DisplayName="Product ID"></FieldRef>
    < FieldRef ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Descritpion" DisplayName="Product Description"></FieldRef>

g 8h"@

四、部署此项目,刷新网站即可看到我们自定义的列表;在网站设置中得,网站栏、网站内容类型也可以看到我们新建的栏和内容类型。

时间: 2024-10-14 18:17:28

sharepoint2010 创建自定义列表的相关文章

自定义列表视图

通过继承BaseAdapter写一个子类,可以创建自定义列表视图: public class MyListAdapter extends BaseAdapter { private LayoutInflater mInflater;//声明一个LayoutInflater类变量 private Context mContext;//声明一个Context类变量 private List<Map<String,String>> mitem;//声明一个元素为<Map<St

微信公众平台如何创建自定义菜单?

微信现在的功能越来越强大了,申请认证后的开发者能自定义菜单,用户直接点击微信界面下方的菜单,就能直接去到指定的页面,下面小编用[微信公众平台测试号]为大家演示一下怎么创建自定义菜单. 工具/原料 认证后的微信公众平台 微信公众平台切换开发者模式 方法/步骤 登录[微信公众平台],选择[功能]菜单下面的[高级功能],进入[开发模式]. 由于小编的微信公众平台还没通过认证,下面用[申请测试账户]为大家演示. 微信公众平台接口测试帐号申请,无需公众帐号.快速申请接口测试号,直接体验和测试公众平台所有高

sharepoint 2016 学习系列篇(13)-自定义列表应用篇-(2)添加字段栏

前面创建完列表之后,我们需要在用户信息表中,添加一些我们需要用到的字段,当然还可以添加更多的字段,这里我们只是简单做一个示例,介绍如何在自定义列表(Custom List)中创建字段栏. 我们先创建一个字段"姓名". 打开我们前面创建好的用户信息表,点击列表的空白位置,在左上角会显示出一些标签的按钮,点击"列表(List)"标签,点击列表设置(List Settings), 进入设置页面,在下方找到栏(Column),点击创建栏(Create column), 进入

创建自定义存储过程

--创建自定义存储过程--语法:--if exists(select * from sysobjects where name='')-- drop proc ''--go--create proc[edure] usp_名称-- 相当于方法的():创建参数--as-- 相当于方法{}:方法体--go--调用语法:--exec 存储过程名称 参数值,参数值 .....--创建存储过程,获取所有学员信息if exists(select * from sysobjects where name='u

ansible通过cmdb资产接口动态创建hosts列表

前言: 在自动化.批量化操作主机的时候,有时候咱们需要定义主机组. 比如,saltstack的group组,及salt -N参数 ,在ansible下的自己搞定ansible的主机组.有些麻烦,要知道,你既然选择了用saltstack.ansible这类的集群操作工具,如果你再选择把几十个多到几百个手动地,一个个地把主机组及相关联的主机写入配置,是不是显得很1+1. 这里简单说下我的一些个方法,首先可以避免这些个配置的写入,在产生minion的id的时候,就给他一个完美又规范的主机域名. 比如,

使用Python创建自定义机器人向群组人员发送消息

创建机器人 打开需要创建机器人的群组,点击 群组机器 人的图标 点击 + 号键创建机器人 点击 自定义 创建自定义机器人 点击 添加 设置机器人头像,机器人名称,机器人属组,点击下一步 复制API(webhook),点击完成 编写Python脚本 注意:修改脚本内requrl的值为机器人的webhook地址 脚本使用说明: 使用方法:脚本后面跟要发送的消息 at所有人将 isAtAll 的值改为True at指定人在 atMobiles 列表定义被at人的手机,列表形式 requrl的值为机器人

[翻译]在objective c创建自定义collection view样式

创建自定义collection样式 苹果在ios6中新增了一个更加易于创建和管理复杂用户界面的类:collection view.在此之前ios6上面用于展示多项列表的是table view,虽然名称是表格但它展示信息的形式并不是表格形式,而是垂直列表,当然在实际设计展示垂直可滚动的文本型列表时非常有用,但是你会遇到许多垂直可滚动的列表所存在的局限性,比如不能水平滚动,每行只有一项单元格,没有复杂的样式,在ios6之前你想要做到这些事情,只能靠自定义扩展. 在ios6 平台介绍了一个新的类:co

每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询

前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoint 自定义列表项添加callout菜单.希望能够给大家带来一些帮助. 1.  在aspx页引用可视化Web部件 有时候会需要在页面中引用项目中创建的可视化Web部件,具体步骤有以下这几步: 1) 在aspx页面顶部注册该可视化Web部件 示例如下: <%@ Register Tagprefix=&qu

sharepoint 2016 学习系列篇(15)-自定义列表应用篇-(4)数据权限配置

当数据已经录入到列表中之后,接下来,朋友们可能会想知道,有些数据,只想给某些用户看到,或者编辑,列表是否支持这样的操作. 大微软的sharepoint平台,对于用户的需求,可以说是考虑得很周全的,权限管理,当然也是不可能漏掉的,而且权限管理,还是sharepoint上一个非常突出的亮点,数据安全性管理的颗粒度,很完善.接下来,我们来看下,如何在sharepoint的自定义列表中,给数据配置不同的用户访问权限,这些当然也是不需要开发,就能实现的. 前面讲到,用户访问sharepoint平台网站的时