SharePoint 2013开发入门探索(一)- 自定义列表
? ? ?在SharePoint 2013中創建自定義列表的方式有很多,在網站內容頁面添加應用程序就可以創建(站點內容-〉 您的應用程序),也可以通過SharePoint Designer 2013創建,而本文將描述的是用Visual Studio 2012 創建自定義列表的內容,因筆者水平有限,如果各位專家高手發現任何疏漏和錯誤,望不惜賜教!
? ? ?首先確認您已經準備好了SharePoint環境,并且安裝了Visual Studio的插件(沒有插件請參考http://yalla.itgroove.net/2012/08/sharepoint-2013-project-templates-for-visual-studio-2012/)。然后打開Visual Studio-〉新建項目選擇Office/SharePoint->SharePoint解決方案->SharePoint 2013-空項目,這里名稱、位置可以修改。項目的名字就是發布后生成wsp文件的名字, 所以為項目取個友好的名字吧。
?
?
?? ?接下來進入自定義向導,如果選擇“部署為沙盒解決方案”,執行環境將受到限制而僅能訪問某些資源,例如不能在代碼中提升權限,在SharePoint映射文件夾里添加內容也會受限。但是有些時候您也許只能這樣選擇,例如從安全管理考慮(沙盒解決方案不會影響整個服務器場)或者您在部署時只有網站集管理員權限而沒有場管理員權限。
?
????
??? 下面的項目屬性將和部署有關。
?
?
???? 選擇解決方案資源管理器里的項目右鍵-〉添加-〉新建項-〉Office/SharePoint->列表,為項目取個溫暖的名字。我想做個客戶信息的列表就叫MyCustomerList。
?
?
???? 接著是選擇列表設置,可以選擇根據模板創建實例,也可以創建新的模版及實例,我這里都創建新的。修改顯示名稱會影響列表的標題,但也會影響URL。我現在沒有直接改成中文,而是在下面的步驟再修改標題。
?
?
???? 新建成功后可看到以下內容:功能文件夾、功能文件、列表模板文件夾、列表模板的Elements.xml文件、列表實例文件夾、列表實例的Elements.xml文件,Schema.xml文件等。
?
?
???? 打開功能(Feature)文件,可以修改功能標題和說明,部署后在設置->網站設置->網站操作-〉管理網站功能會看到這個功能。一個項目里可以有多個功能文件,一個功能文件里也可以包含多個元素(范圍相同的),給每個功能文件也取一個友好的名字,容易辨識(功能文件的名字不要太長,否則用Visual Studio部署時會報錯)。將開發包部署并激活功能后,我們開發自定義列表就能用了。
?
????
??? 看一下功能屬性,這個和部署步驟后的激活功能有關。
?
???
???? 切換到清單選項卡看看功能清單,這里包含上面的功能屬性和這個功能里的開發元素(自定義列表模板和自定義列表實例)。
?
?
??? 打開列表模版和列表實例都有個元素文件Elements.xml,它們的一些屬性就定義在這里。注意,這里的Type或TemplateType值,這個值不能和其他項目的有重復,已經有了就要換一個,否則部署時會報錯。
?
???
??? 在列表選項卡可以修改標題、URL和說明,這回我將標題改為中文(更改會反應在Elements.xml里)。
?
?
???? 切換到欄選項卡,現在看到只有一個標題列。再看下內容類型有兩個,其中項目是默認值。如果我們另選擇添加一個內容類型并把它設為默認值,會發現上面的列變了,可能有好多列!現在理解下內容類型,網上說“內容類型就是由網站欄集合做成的列表模版”,也就是說我一個客戶列表可以做多個客戶內容類型——個人客戶和企業客戶,個人客戶可以有姓名、性別,年齡等字段,企業用戶可以有法人代表、注冊資金等字段。 在SharePoint網站中,設置->網站設置->Web 設計器庫->網站內容類型里有很多定義好的內容類型,內容類型也可以自己開發,可以繼承。
?
????
?
???? 根據需求,添加修改列(使用網格為列表配置列)。如果不需要,可以把默認的列刪掉。
?
?
???? 也可以選擇已有的欄。在SharePoint網站中,設置->網站設置->Web 設計器庫->網站欄里有很多定義好的欄,網站欄也可以自己開發。
?
?
???? 我這里自己手工輸入幾個列,選擇“類型”和“是否必填”。
?
?
???? 注意這里的屬性,DisplayName是顯示的列名,ID和Name將來在代碼里操作可能會使用,要保證其唯一。Type是可以選擇可以詳細設置的,系統為我們準備了幾個Type,我們也可以開發Type--創建自定義字段類型。
?
?
???? 修改完上面的欄,再看下內容類型,發現多了個ListFieldsContentType的內容類型,而且被設為默認值,看來這個內容類型是因為剛才調整了列表的欄后自動創建的。因為在部署后,我在網站內容類型中沒找到叫這個名字的內容類型,再新建一個列表修改后新的內容類型也叫這個名稱,沒有沖突,所以我理解這個內容類型是列表私有的。
?
?
???? 切換到視圖選項卡,可以添加和修改視圖,在這里可以選擇可用列,也可以對列排序。
?
?
???? 現在,打開Schema.xml文件,可以看到我們設置欄、內容類型、視圖還有其他很多的內容都在這里,喜歡XML的高手可以直接修改它,作為新手遇到不會寫的定義也可以從做好的Schema.xml內容里借鑒。
?
?View Code
?
????開發已經完成了了,現在用Visual Studio將項目部署,進入網站已經能看到我的客戶列表。
?
?
???? 再選擇Visual Studio發布,生成了一個.wsp的文件-SharePointProject1.wsp(SharePointProject1是項目名),這個文件就可以拿到生產環境部署了。
?
?
???? 最后出于好奇,我把wsp文件解壓縮,看看里面是什么(如果您的機器上的壓縮軟件不能直接解壓,可嘗試修改后綴名為cab。)。我看到的首先是一個清單文件(manifest.xml),一個DLL文件(SharePointProject1.dll),還有一個功能文件夾。打開清單文件看到里面有項目屬性的信息,DLL文件和功能文件夾位置等;反編譯DLL文件,看到的主要是程序集信息,因為這個項目沒寫什么C#代碼,這里內容非常少。接著再打開功能文件夾,看到的是功能清單文件(Feature.xml),列表模版文件夾(MyCustomerList)、列表實例文件夾(MyCustomerList)。功能清單文件里有功能的屬性信息、列表模版和列表實例的元素位置。列表模版和列表實例文件夾里都裝著各自的元素文件(Elements.xml),其中列表模板文件夾里還有個Schema.xml文件,我們開發的東西都找到了!
?
??
?
?參考資料:
1、《在 SharePoint 2010 中創建自定義列表定義》
http://msdn.microsoft.com/zh-cn/library/ff728096(v=office.14).aspx
2、《創建 SharePoint 的網站欄、內容類型和列表》
http://msdn.microsoft.com/zh-cn/library/vstudio/ee231593(v=vs.110).aspx
3、《創建自定義字段類型》
http://msdn.microsoft.com/zh-cn/library/bb862248(office.14).aspx
????
微軟Web平臺安裝器下載:
http://www.microsoft.com/web/downloads/platform.aspx
總結
以上是生活随笔為你收集整理的SharePoint 2013开发入门探索(一)- 自定义列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c#进阶(5)—— WCF 实现简单预订
- 下一篇: 第三节:ThreadPool的线程开启、