转: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. Unity3D 游戏开发构架篇 —— 动态大场景生成 = 区域加载+对象池管理

    项目做一个类似无尽模式的场景,想了一想,其实方法很简单,做一个相关的总结. 主要先谈一谈构架,后期附上代码. 一.区域加载 其实无尽场景的实现很简单,因为屏幕限制,那么不论何时何地,我们只能看到自己的 ...

  2. 个人Android作品开发——FinancePad记账通

    开发背景:针对在外工作的年轻一族,记录平时生活消费记录,方便清楚自己的钱花在哪些地方,方便管理. 开发时间:2013年7月中旬 开发环境:Eclipse Andorid SDK V2.0 开发语言:J ...

  3. CPU/ABI显示No system images installed for this target的解决方案

    CPU/ABI显示No system images installed for this target的解决方案 手动下载image http://www.androiddevtools.cn/ SD ...

  4. VS2010 MFC DataGrid绑定实例

    VS2010环境下MFC使用DataGrid绑定数据源 参考:http://blog.csdn.net/fddqfddq/article/details/7874706 详细介绍如何在MFC中使用Da ...

  5. 【hadoop2.6.0】倒排索引遇到问题了

    想实现书上倒排索引的例子,但是我不会java想用C++写,如果用hadoop streaming 那么输入必须是标准输入的形式, 那么我怎么获得每个文件的文件名呢? 查了一下,还有一种方法叫做hado ...

  6. POJ 1674

    #include<iostream>//cheng da cai zi 08 .11 .13 using namespace std; int main() { int digit_num ...

  7. POJ 3318 Matrix Multiplication(矩阵乘法)

    题目链接 题意 : 给你三个n维矩阵,让你判断A*B是否等于C. 思路 :优化将二维转化成一维的.随机生成一个一维向量d,使得A*(B*d)=C*d,多次生成多次测试即可使错误概率大大减小. #inc ...

  8. POJ 3440 Coin Toss(求概率)

    题目链接 题意 :把硬币往棋盘上扔,分别求出硬币占1,2,3,4个格子的时候的概率. 思路 : 求出公式输出,不过要注意输出格式,我还因为输入的时候用了int类型错了好几次..... #include ...

  9. java打印时间精确到毫秒

    package net.floodlightcontroller.conflict; import java.io.*; import java.util.*; import java.text.Si ...

  10. 转:UGUI与NGUI的区别与优缺点

    1. NGUI与UGUI的区别 1) uGUI的Canvas 有世界坐标和屏幕坐标   2) uGUI的Image可以使用material     3) UGUI通过Mask来裁剪,而NGUI通过Pa ...