转: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;="" background-color:rgb(240,240,240)"="">并新建如下代码:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field SourceID="http://schemas.microsoft.com/sharepoint/v3"
ID="{36819A9B-E748-47D5-9949-A65DD195BF80}"
Name="ProductDescription"
DisplayName="Product Description"
Group="My Custom Columns"
Type="Text"
DisplaceOnUpgrade="TRUE"></Field>
<Field SourceID="http://schemas.microsoft.com/sharepoint/v3"
ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"
Name="ProductID"
DisplayName="Product ID"
Group="My Custom Columns"
Type="Number"
DisplaceOnUpgrade="TRUE"></Field>
<!-- 父内容类g
8h"@型: 项目 (0x01) -->
<ContentType ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"
Name="Product"
Group="自定义内容类型"
Description="我的内容类型"
Inherits="TRUE"
Version="0">
<FieldRefs>
<FieldRef ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="ID"/>
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Product Name"/>
<FieldRef ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Description"/>
</FieldRefs>
</ContentType>
</Elements>

代码中包含的元素如下:

  1. Elements:顶级元素
  2. Field:定义网站栏<g 8h&#20;&#1;"@="" 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&#20;&#1;"@"Number"

             DisplaceOnUpgrade="TRUE"></Field>

    属性 说明
    SourceID 可选属性,类型为 Text。包含定义字段的命名空间(如 http://schemas.microsoft.com/sharepoint/v3),或者在其中创建自定义字段的列表的 GUID。
    ID 必需属性,类型为 Text。唯一标识字段。该值应是包含在括号 ({}) 内的 GUID 的字符串表示形式。
    Name 必需属性,类型为 Text。字段的内部名称。该名称在列表或网站的字段集中必须为唯一。如有必要,SharePoint Foundation 会修改该值以保证其唯一性;否则,在字段g 8h&#20;&#1;"@定义的生命周期内,其不会更改。
    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&#20;&#1;"@ Text。指定内容类型的内容类型 ID。内容类型 ID 具有特定的格式。如果为ID 属性分配的值格式不正确,激活功能时将遇到错误。
    Name 必需属性,类型为 Text。指定内容类型名称。该值可以为对
    $Resources:String 格式的资源的引用。名称本身的长度不能超过 128 个字符,并且不能包含   / : * ? " # % < > { } | ~ & 字符、两个连续的句点 (..) 或制表符等特殊字符。 如果添加内容类型的集合中存在另一个同名内容类型,则会出现错误。
    Group 可选属性,类型为 Text。指定内容类型分配到的内容类型组。内容类型组是用户定g 8h&#20;&#1;"@的组,可帮助您将内容类型分组到逻辑类别中。该值可以为对$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&#20;&#1;"@

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

    必需属性,类型为 Text。列的显示名称。最大长度为 255 个字符。

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

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

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

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="ProductList" FolderCreation="FALSE" EnableContentTypes="TRUE"
Direction="$Rg
8h"@esources:Direction;" Url="Lists/ListsAndSchemas-ProductList" BaseType="0"
xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x01">
<Folder TargetName="Item" />
</ContentTypeRef>
<ContentTypeRef ID="0x0120" />
<ContentTypeRef ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"></ContentTypeRef>
</ContentTypes>
<Fields>
<Field ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="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&qug
8h"@ot; Type="Text"></Field>
</Fields>
<Views>
<View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="LinkTitleNoMenu"></FieldRef>
<FieldRef ID="{36819A9B-E748-47D5-9949-A65DD195BF80}" Name="Descritpion" DisplayName="Product Description"></FieldRef>
<FieldRef ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name="ID" DisplayName="Product ID"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderByg
8h"@>
</Query>
<ParameterBindings>
<ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_ONET_HOME)" />
</ParameterBindings>
</View>
<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">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Pagg
8h"@ed="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="Attachments"></FieldRef>
<FieldRef Name="LinkTitle"></FieldRef>
<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>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="ID"></FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
g
8h"@ </ParameterBindings>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pagesform.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pagesform.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pagesform.aspx" WebPartZoneID="Main" />
</Forms>
</MetaData>
</List>

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

  1. 在ContentTypes元素中添加<ContentTypeRef ID="0x01001bc8deb250c04fa0bd7d541e4757c82a"></ContentTypeRef>,此处的ID必须与第二部中创建的内容模板中得ContentType的ID相同。
  2. 添加Fields集合元素

    <Fields>

          <Field ID="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}" Name=&qug 8h&#20;&#1;"@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&#20;&#1;"@

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

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

  1. SharePoint 2013开发入门探索(一)- 自定义列表

    在SharePoint 2013中创建自定义列表的方式有很多,在网站内容页面添加应用程序就可以创建(站点内容-〉 您的应用程序),也可以通过SharePoint Designer 2013创建,而本文 ...

  2. sharepoint 2010 使用自定义列表模版创建列表(2)

    前面用的方法是通过界面上操作,根据自定义模版,创建的列表.sharepoint 2010 使用自定义列表模版创建列表(1) 这里顺便记录多另一种方法,通过程序来创建. ---------------- ...

  3. 如何:在 SharePoint 中创建外部列表

    在创建外部内容类型后创建外部列表是一项非常简单的任务,有如下4种方式进行: 可使用 Microsoft SharePoint Designer 2010 浏览器来完成 VS2010的列表实例 采用代码 ...

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

    前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoi ...

  5. 创建自定义 jQuery 移动主题

    自定义页面.工具栏.内容.表单元素.列表.按钮等元素的外观 智能电话和平板设备的高采用率最终导致增加了对移动 Web 开发人员和设计师的需求.jQuery Mobile 框架支持您创建能与原生应用程序 ...

  6. 在 ASP.NET MVC 中创建自定义 HtmlHelper

    在ASP.NET MVC应用程序的开发中,我们常碰到类似Html.Label或Html.TextBox这样的代码,它将在网页上产生一个label或input标记.这些HtmlHelper的扩展方法有些 ...

  7. WPF界面设计技巧(4)—自定义列表项样式

    原文:WPF界面设计技巧(4)-自定义列表项样式 有前面修改按钮样式的基础,我们可以尝试来定制一个即好看又好用的 ListBox ,今天先来讲“好看”部分. 打开 Microsoft Visual S ...

  8. HFun.快速开发平台(二)=》自定义列表实例(请求参数的处理)

    上编描述了自定义列表的基本实现功能,本此记录列表的请求过程. 个人比较喜欢对参数进行对象化,方便后续人维护及查看,先上代码: /************************************ ...

  9. Java 9 揭秘(7. 创建自定义运行时映像)

    Tips 做一个终身学习的人. 在第一章节中,主要介绍以下内容: 什么是自定义运行时映像和JIMAGE格式 如何使用jlink工具创建自定义的运行时映像 如何指定命令名称来运行存储在自定义映像中的应用 ...

随机推荐

  1. Java学习第二篇:类,对象,成员属性,成员方法,构造方法,类变量,类方法

    一.类的定义 一个全面的类定义是比较复杂的,  定义如下:

  2. 国内最大的 Node.js 社区将 New Relic 的监控产品换成了 OneAPM

    国内最知名的 CNode 社区把 New Relic 的监控产品换成了 OneAPM .难道 APM 的老大 New Relic 已经被 OneAPM 超越? 毋庸置疑,在全球应用性能管理 SaaS ...

  3. UVA 291 The House Of Santa Claus (DFS求一笔画)

    题意:从左下方1开始,一笔画出圣诞老人的屋子(不过话说,圣诞老人的屋子是这样的吗?这算是个屋子么),输出所有可以的路径. 思路:贴代码. #include <iostream> #incl ...

  4. POJ 2255 Tree Recovery(根据前序遍历和中序遍历,输出后序遍历)

    题意:给出一颗二叉树的前序遍历和中序遍历的序列,让你输出后序遍历的序列. 思路:见代码,采用递归. #include <iostream> #include <stdio.h> ...

  5. Fragment (一)

      1,简介 Fragement(碎片)允许将Activity拆分成多个完全独立封装的可重用组件,每个组件有它自己的生命周期和UI布局,由此可见,Fragement依赖于Activity,它的生命周期 ...

  6. HDU 1164 Eddy's research I

    题目链接 题意 : 给你一个数,让你用它的素数质因子表示出来. 思路 : 先打一下表,因为会有重复的质因子,所以从大到小开始找,并且找到一个之后不能就接着往下找,要再找一遍这个数. #include ...

  7. hdu 1352 I Conduit!

    计算几何,主要是排序问题,其他都很好做…… ;}

  8. 李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

    从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...

  9. Linux之SAMBA共享服务

    简述 Samba服务器可以让Windows操作系统用户访问局域网中Linux主机,就象访问网上邻居一样方便. 具有以下功能: 共享目录:在局域网上共享某个或某些目录,使得同一个网络内的Windows用 ...

  10. Sina App Engine(SAE)教程(11)- Yaf使用

    Yaf参考资料 Yaf(Yet Another Framework)用户手册 想在SAE使用Yaf? 无需申请,sae环境已经全面支持. Yaf 实战 下面是一个运行在SAE的Yaf的hello wo ...