在SharePoint的开发中,用Visual Studio自定义列表是经常会用到的,因为很多时候,我们并不会手动创建列表,而手动创建列表在测试服务器和正式机之间同步字段,也很麻烦,所以我们经常用代码来定义列表或者文档库。

  尤其在工作流的开发中,我们经常会用到代码定义任务列表,或者历史记录列表,用来存储我们需要存储的相关数据。而在Visual Studio 2013中,定义列表也提供了模板,通过模板创建,我们很容易就可以定义需要的列表了。

  下面,让我们简单学习下,如何使用VS定义自定义列表。

1、跟之前一样,创建SharePoint 2013空项目,如下图:

2、选择调试网站和解决方案类型,这里选择场解决方案,如下图:

3、添加新项,选择列表,如下图:

4、设置列表的显示名称,选择创建自定义的列表还是根据模板创建,第一个选项是自定义列表,第二个选项是根据现有列表模板创建,如下图:

5、也可以选择根据列表模板创建,这里我没有选择这个选项,如下图:

6、添加列表栏,如下图:

7、添加或修改默认内容类型,如下图:

8、添加字段,左侧是字段名,建议先写英文,保存后改为中文;或者写中文,去xml里面改英文也可以,如下图:

9、创建、或修改视图,添加视图需要的栏,如下图:

10、修改列表信息,列表名、列表Url、是否显示快速启动等,如下图:

11、查看列表的Xml,上面的所有定义,都可以在这里看到和修改,如下图:

  如下,Xml的详细描述,可以看到栏、内容类型、视图、表单等定义的xml;

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="CustomList" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/CustomList" BaseType="" xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<ContentTypes> <ContentType ID="0x0100bdd9136fd8a7452dbadcdabda53becf7" Name="ListFieldsContentType"><FieldRefs><FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" /><FieldRef ID="{8c29daea-1ef8-43df-aa4d-00a4ad305e28}" Name="test" /><FieldRef ID="{b028b5c5-e3ed-4ca1-a5a5-a0260f41a5c8}" Name="_x67e5__x9605__x9879_" /><FieldRef ID="{b2a9e09b-9b62-4df4-a370-36b3869cb308}" Name="MyAuthor" /></FieldRefs></ContentType><ContentTypeRef ID="0x01">
<Folder TargetName="Item" />
</ContentTypeRef><ContentTypeRef ID="0x0120" /></ContentTypes>
<Fields> <Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Type="Text" Name="Title" DisplayName="$Resources:core,Title;" Required="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Title" MaxLength="" /><Field Name="test" ID="{8c29daea-1ef8-43df-aa4d-00a4ad305e28}" DisplayName="内容" Type="Note" Required="FALSE" /><Field Name="_x67e5__x9605__x9879_" ID="{b028b5c5-e3ed-4ca1-a5a5-a0260f41a5c8}" List="{e22aa897-66d4-41fb-99b7-77acce6c10f6}" ShowField="Title" DisplayName="查阅项" Type="Lookup" /><Field Name="MyAuthor" ID="{b2a9e09b-9b62-4df4-a370-36b3869cb308}" DisplayName="作者" Type="User" /></Fields>
<Views> <View BaseViewID="" Type="HTML" MobileView="TRUE" TabularView="FALSE">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE"></RowLimit>
<ViewFields> <FieldRef Name="LinkTitleNoMenu"></FieldRef></ViewFields>
<Query>
<OrderBy> <FieldRef Name="Modified" Ascending="FALSE"></FieldRef></OrderBy>
</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="" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/15/images/generic.png?rev=23" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<JSLink>clienttemplates.js</JSLink>
<RowLimit Paged="TRUE"></RowLimit>
<ViewFields> <FieldRef Name="LinkTitle"></FieldRef><FieldRef Name="test" /><FieldRef Name="_x67e5__x9605__x9879_" /><FieldRef Name="MyAuthor" /></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)" />
</ParameterBindings>
</View></Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
</MetaData>
</List>

12、部署定义的列表,在网站中打开,如下图:

13、新建项目,可以看到我们添加的栏,查阅项没有关联,其他栏都正常,如下图:

14、修改Schema.xml中查阅项Field,添加下面两项,分别是查阅项关联的List和Field;

List="{e22aa897-66d4-41fb-99b7-77acce6c10f6}" ShowField="Title"

15、重新部署,如下图,可以看到查阅项正常了,OK!

  简单的用VS定义列表,就如上面介绍的,当然可能需要复杂的字段,我们无从知道字段的Field怎么定义,我们可以先手动创建一个类似字段,用SharePoint Manager 2013查看下字段的Xml,参考来定义我们的字段。

  要说的就这么多了,很简单的一个例子,希望对初学者有所帮助,也希望高手指教错误,不吝赐教。

SharePoint 2013 图文开发系列之代码定义列表的更多相关文章

  1. SharePoint 2013 图文开发系列之列表定义高级篇

    转载自  http://www.cnblogs.com/jianyus/p/3484714.html SharePoint列表库,是我们使用过程中最常用的库,下面,我们简单介绍下代码定义自定义列表,主 ...

  2. SharePoint 2013 图文开发系列之入门教程

    做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...

  3. SharePoint 2013 图文开发系列之计时器任务

    SharePoint的计时器任务,又称TimerJob,由服务里的Timer服务执行,在管理中心管理,是一个类似于Windows任务计划的功能,方便定时执行一些需要的功能,以免影响服务器性能. 在Sh ...

  4. SharePoint 2013 图文开发系列之定义站点模板

    SharePoint站点模板是一个非常好的功能,方便我们开发一类网站,然后在此基础上做二次开发,对于SharePoint的使用,有着举足轻重的作用. 因为篇幅比较长,所以加上目录,方便大家查看: 一. ...

  5. SharePoint 2013 图文开发系列之Visual Studio 创建母版页

    一直以来,对于SharePoint母版页的创建,都是使用SharePoint Designer来创建和修改的,而后接触了SharePoint 2013,发现可以使用Html文件,通过设计管理器导入,然 ...

  6. SharePoint 2013 图文开发系列之自定义字段

    SharePoint使用的优势,就在于开箱即用.快速搭建,SharePoint自身为我们提供了很多字段类型,已经很丰富了.但是,在实际应用中,我们还需要一些功能特殊的字段,下面,我们简单介绍下字段的开 ...

  7. SharePoint 2013 图文开发系列之WebPart

    这是我们介绍SharePoint开发入门的第一篇,在这一篇里,我们会介绍SharePoint开发的几个关键物理路径,一些开发技巧和最基础的WebPart开发. 开发工具 在SharePoint 201 ...

  8. SharePoint 2013 图文开发系列之可视化WebPart

    有了WebPart开发的基础,再进行可视化WebPart开发,就容易多了.创建和开发过程,两者非常相似,下面,我们简单介绍下可视化WebPart的开发. 1.添加新项目,选择SharePoint 20 ...

  9. SharePoint 2013 图文开发系列之事件接收器

    在SharePoint的使用中,我们经常需要在完成一个动作之后,触发一个事件:比如,我们上传一个文档,但是没有标题,我们需要在上传完成之后,触发一个事件把文件名同步到标题,这就需要用到事件接收器. 此 ...

随机推荐

  1. 收集的React.JS资料

    主页 http://facebook.github.io/react/ https://github.com/facebook/react   中文站 http://www.reactjs.cn/ h ...

  2. 不使用session,借助redis实现验证码

    1.首先看一下基本的流程 2.看一下代码 注:其中用到的一些工具类,可以到我的github上去下载  https://github.com/hjzgg/usually_util/tree/master ...

  3. mac下安装tomcat

    在window下面搭建tomcat环境很简单,那是因为我们不熟悉mac系统,当我们习惯了命令行的时候,也是so easy,只要通过以下几个步骤就可以解决,本人亲测可用,不会可以留言. 1.进入apch ...

  4. 数据可视化-EChart2.0.0使用中遇到的2个问题

    之前项目中都是使用FusionChart和HighChart,基本都是没有购买商业许可.然后现在开发的系统需要交付给客户使用.所以现在图表控件不能直接使用FusionChart和HighChart,通 ...

  5. KVC & KVO

    KVC和KVO看上去又是两个挺牛的单词简写,KVC是Key-Value Coding的简写,是键值编码的意思.KVO是Key-Value  Observing的简写,是键值观察的意思.那么我们能拿KV ...

  6. ubuntu安装虚拟磁带库mhvtl

    项目需要用到磁带库,先装个虚拟磁带库mhvtl来模拟下. 1 下载源码 从网站https://sites.google.com/site/linuxvtl2/home#mhvtl-download下载 ...

  7. CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.

    今天,在用icinga服务器端测试客户端脚本时,报如下错误: [root@mysql-server1 etc]# /usr/local/icinga/libexec/check_nrpe -H 192 ...

  8. 设置SharePoint Server 2013 的匿名访问

    默认情况下,SharePoint Server 2013 是关闭匿名访问的,但是某些环境下我们又需要将这个匿名访问对全员开放,怎么操作更加安全与便捷,对于一个崭新的环境我们可以这样操作. 首先在当前需 ...

  9. 订制DOM选择器

    本来是打算参考zepto.js,然后将里面想要的部分抽出来做函数,随调随用. 但后面发现这种写法重复代码太多,代码不整洁,于是就打算模仿下zepto的写法,挑出些比较实用的方法,造一下轮子. 起名叫“ ...

  10. Oracle数据库全球化

    一.自定义数据库和各个会话的语言相关行为 1.1 全球化功能 1.2 使用全球化支持功能 二.使用数据库和NLS字符集 2.1 语言排序与选择 2.2 Locale Builder 2.3 使用时区 ...