日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【转】2.2 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 2)

發(fā)布時(shí)間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】2.2 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 2) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

(二)列表(SPList)

列表是SharePoint中最為重要的數(shù)據(jù)容器,我們一般保存在SharePoint中的所有數(shù)據(jù),都是保存在列表中(文檔庫(kù)也是一種列表),因此列表對(duì)象在SharePoint的開(kāi)發(fā)中是非常重要的對(duì)象之一。在SharePoint中,列表對(duì)象使用SPList表示,列表的集合使用SPListCollection表示。

如果實(shí)在難以理解SharePoint列表是怎么一回事的話,可以設(shè)想如下這種其實(shí)不準(zhǔn)確的比喻,與傳統(tǒng)的數(shù)據(jù)類型相比較,有如下的對(duì)應(yīng)關(guān)系:列表(SPList)相當(dāng)于數(shù)據(jù)表(DataTable);視圖(SPView)相當(dāng)于數(shù)據(jù)視圖(DataView);字段(SPField)相當(dāng)于數(shù)據(jù)欄(DataColumn);列表?xiàng)l目(SPListItem)相當(dāng)于數(shù)據(jù)行(DataRow)。

技巧提示

在創(chuàng)建一個(gè)列表之后,我們會(huì)注意到列表的根目錄和列表名稱可能存在著一定的關(guān)系,讀者可以嘗試著使用英文、中文、中英文混雜的名稱創(chuàng)建一些列表,并觀察列表路徑中的規(guī)律。對(duì)于全中文列表名稱而言,列表的路徑可能會(huì)是“Lists/List”、“Lists/List1”、“Lists/List2”這樣一些沒(méi)有實(shí)際含意的Url。在實(shí)際應(yīng)用中創(chuàng)建中文名稱列表的時(shí)候,可以先使用一個(gè)有意義的英文名稱創(chuàng)建列表(比如“Contacts”),再將其標(biāo)題修改成中文(比如“聯(lián)系人”)。

?

1、列表的獲取

列表的獲取有如下若干種方式:

(1) 使用SPWeb的Lists屬性獲取網(wǎng)站中所有列表的集合(SPListCollection),之后使用索引器獲取特定的某個(gè)列表:

  • Lists[idx]:int型索引器,根據(jù)下標(biāo)獲取,不太常用;
  • Lists[id]:Guid型索引器,根據(jù)列表的Guid獲取;
  • Lists[title]:string型索引器,根據(jù)列表名稱獲取,最常用的一種方式。

(2) 使用SPWeb的GetList方法,根據(jù)列表相對(duì)服務(wù)器的路徑獲取;

(3) 使用SPWeb的GetListFromUrl,根據(jù)列表的一些視圖頁(yè)面的相對(duì)網(wǎng)站的路徑(也可以使用相對(duì)服務(wù)器的路徑)獲取列表;

(4) 使用SPWeb的GetListsOfType方法,獲取某一特定基類型(見(jiàn)后文)的所有列表。

獲取到列表集合(SPListCollection)后,通過(guò)其TryGetList方法,根據(jù)列表的標(biāo)題嘗試獲取列表。該方法是SharePoint 2010中新增加的方法,之前最常用的是使用字符串索引器的方式根據(jù)列表名稱來(lái)獲取列表對(duì)象,但如果列表名稱并不存在的話,則會(huì)拋出一個(gè)異常。與之前的獲取方法相比,使用TryGetList方法,當(dāng)列表名稱不存在的時(shí)候,會(huì)返回null,更加人性化。

?

例如,如下的程序獲取了網(wǎng)站中一個(gè)名叫“Chapters”的列表:

1: using(SPSite site = new SPSite("http://sp2010/book")) 2: { 3: using(SPWeb web = site.OpenWeb()) 4: { 5: SPList chptList = web.Lists.TryGetList("Chapters"); 6: if(chptList != null) 7: { 8: // use the list 9: } 10: } 11: }

?

2、列表的基類型(BaseType)和列表模板(BaseTemplate)

這是兩個(gè)比較容易混淆的屬性和概念,但是這兩個(gè)概念在SharePoint的跨網(wǎng)站跨列表查詢、事件處理程序、網(wǎng)站功能(Feature)中是非常重要的,因此在這里做一個(gè)簡(jiǎn)要的說(shuō)明。

列表的基類型指的是列表的基本類型,不同基本類型的列表之間在底層結(jié)構(gòu)上有著較大的差異,SharePoint內(nèi)置有5種基本類型的列表(參考SPBaseType枚舉類型):

  • 普通列表(GenericList:大多數(shù)列表的類型,比如通知、日歷、聯(lián)系人等;
  • 文檔庫(kù)(DocumentLibrary:存儲(chǔ)文件的列表,比如文檔庫(kù)、圖片庫(kù)、表單庫(kù)等;
  • 討論板(DiscussionBoard:討論板列表;
  • 調(diào)查(Survey:調(diào)查列表;
  • 問(wèn)題追蹤(Issue:問(wèn)題追蹤列表。

由上述分類可以看出,列表的基類型定義了列表的基本結(jié)構(gòu)和大體功能,而列表模板則更具體地定義了一個(gè)列表的具體結(jié)構(gòu)、字段、視圖等信息,我們?cè)诹斜韯?chuàng)建頁(yè)面中所看到的每一個(gè)鏈接,基本上都是一個(gè)個(gè)不同的列表模板,當(dāng)然我們也可以通過(guò)將列表另存為模板的方式,將一個(gè)配置好字段、視圖信息的列表保存為自定義的列表模板。

SharePoint內(nèi)置了很多種列表模板,每種內(nèi)置的列表模板都有一個(gè)整型的ID,例如通知列表的模板ID為104、文檔庫(kù)模板的ID為101。這些內(nèi)置列表模板和ID值可以參考SDK中的SPListTemplateType枚舉類型。

?

3、列表的常用屬性

SPList的常用屬性如下:

名稱

類型

說(shuō)明

BaseTemplate

SPListTemplateType

列表模板

BaseType

SPBaseType

列表的基類型

DefaultView

SPView

列表的默認(rèn)視圖

RootFolder

SPFolder

列表的根文件夾

Title

string

列表的標(biāo)題

Items

SPListItemCollection

列表中的所有條目(非文件夾條目)

Folders

SPListItemCollection

列表中的所有文件夾條目,詳見(jiàn)后文解釋

Fields

SPFieldCollection

列表中的所有字段

Forms

SPFormCollection

列表中的表單(如新建、編輯、查看等)

Views

SPViewCollection

列表中的所有視圖

例如,如下的程序列出了網(wǎng)站中的所有列表,并打印出其列表的標(biāo)題:

1: using(SPSite site = new SPSite("http://sp2010/book")) 2: { 3: using(SPWeb web = site.OpenWeb()) 4: { 5: foreach(SPList list in web.Lists) 6: Console.WriteLine(list.Title); 7: } 8: }

總結(jié)

以上是生活随笔為你收集整理的【转】2.2 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。