(二)列表(SPList)

列表是SharePoint中最为重要的数据容器,我们一般保存在SharePoint中的所有数据,都是保存在列表中(文档库也是一种列表),因此列表对象在SharePoint的开发中是非常重要的对象之一。在SharePoint中,列表对象使用SPList表示,列表的集合使用SPListCollection表示。

如果实在难以理解SharePoint列表是怎么一回事的话,可以设想如下这种其实不准确的比喻,与传统的数据类型相比较,有如下的对应关系:列表(SPList)相当于数据表(DataTable);视图(SPView)相当于数据视图(DataView);字段(SPField)相当于数据栏(DataColumn);列表条目(SPListItem)相当于数据行(DataRow)。

技巧提示

在创建一个列表之后,我们会注意到列表的根目录和列表名称可能存在着一定的关系,读者可以尝试着使用英文、中文、中英文混杂的名称创建一些列表,并观察列表路径中的规律。对于全中文列表名称而言,列表的路径可能会是“Lists/List”、“Lists/List1”、“Lists/List2”这样一些没有实际含意的Url。在实际应用中创建中文名称列表的时候,可以先使用一个有意义的英文名称创建列表(比如“Contacts”),再将其标题修改成中文(比如“联系人”)。

 

1、列表的获取

列表的获取有如下若干种方式:

(1) 使用SPWeb的Lists属性获取网站中所有列表的集合(SPListCollection),之后使用索引器获取特定的某个列表:

  • Lists[idx]:int型索引器,根据下标获取,不太常用;
  • Lists[id]:Guid型索引器,根据列表的Guid获取;
  • Lists[title]:string型索引器,根据列表名称获取,最常用的一种方式。

(2) 使用SPWeb的GetList方法,根据列表相对服务器的路径获取;

(3) 使用SPWeb的GetListFromUrl,根据列表的一些视图页面的相对网站的路径(也可以使用相对服务器的路径)获取列表;

(4) 使用SPWeb的GetListsOfType方法,获取某一特定基类型(见后文)的所有列表。

获取到列表集合(SPListCollection)后,通过其TryGetList方法,根据列表的标题尝试获取列表。该方法是SharePoint 2010中新增加的方法,之前最常用的是使用字符串索引器的方式根据列表名称来获取列表对象,但如果列表名称并不存在的话,则会抛出一个异常。与之前的获取方法相比,使用TryGetList方法,当列表名称不存在的时候,会返回null,更加人性化。

 

例如,如下的程序获取了网站中一个名叫“Chapters”的列表:

))
   2: {
using(SPWeb web = site.OpenWeb())
   4:   {
);
null)
   7:     {
// use the list
   9:     }
  10:   }
  11: }

相关文章: