SharePoint 2013 圖文開發系列之代碼定義列表


  在SharePoint的開發中,用Visual Studio自定義列表是經常會用到的,因為很多時候,我們並不會手動創建列表,而手動創建列表在測試服務器和正式機之間同步字段,也很麻煩,所以我們經常用代碼來定義列表或者文檔庫。

  尤其在工作流的開發中,我們經常會用到代碼定義任務列表,或者歷史記錄列表,用來存儲我們需要存儲的相關數據。而在Visual Studio 2013中,定義列表也提供了模板,通過模板創建,我們很容易就可以定義需要的列表了。

  下面,讓我們簡單學習下,如何使用VS定義自定義列表。

1、跟之前一樣,創建SharePoint 2013空項目,如下圖:

clip_image001

2、選擇調試網站和解決方案類型,這里選擇場解決方案,如下圖:

clip_image002

3、添加新項,選擇列表,如下圖:

clip_image003

4、設置列表的顯示名稱,選擇創建自定義的列表還是根據模板創建,第一個選項是自定義列表,第二個選項是根據現有列表模板創建,如下圖:

clip_image004

5、也可以選擇根據列表模板創建,這里我沒有選擇這個選項,如下圖:

clip_image005

6、添加列表欄,如下圖:

clip_image006

7、添加或修改默認內容類型,如下圖:

clip_image007

8、添加字段,左側是字段名,建議先寫英文,保存后改為中文;或者寫中文,去xml里面改英文也可以,如下圖:

clip_image008

9、創建、或修改視圖,添加視圖需要的欄,如下圖:

clip_image009

10、修改列表信息,列表名、列表Url、是否顯示快速啟動等,如下圖:

clip_image010

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

clip_image011

  如下,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="0" 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="255" /><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="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></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="1" 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">30</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>
View Code

12、部署定義的列表,在網站中打開,如下圖:

clip_image012

13、新建項目,可以看到我們添加的欄,查閱項沒有關聯,其他欄都正常,如下圖:

clip_image013

14、修改Schema.xml中查閱項Field,添加下面兩項,分別是查閱項關聯的List和Field;

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

15、重新部署,如下圖,可以看到查閱項正常了,OK!

clip_image014

  簡單的用VS定義列表,就如上面介紹的,當然可能需要復雜的字段,我們無從知道字段的Field怎么定義,我們可以先手動創建一個類似字段,用SharePoint Manager 2013查看下字段的Xml,參考來定義我們的字段。

  要說的就這么多了,很簡單的一個例子,希望對初學者有所幫助,也希望高手指教錯誤,不吝賜教。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM