MOSS 2010:Visual Studio 2010開發體驗(12)——列表開發之列表定義


上一篇,我們已經在Visual Studio中定義好了內容類型

http://www.cnblogs.com/chenxizhang/archive/2010/04/25/1719694.html

image

下面我們來看看如何創建和使用列表定義(List Definition)

【注意】如果你不清楚他們有關的概念,請參考

http://www.cnblogs.com/chenxizhang/archive/2010/04/24/1719467.html

 

1. 添加一個列表定義.

image

image

【注意】這里我們選上了“Add a list instance for this list definition”,表示要自動創建一個實例。

image

2. 了解有關的定義文件,主要是下面這個schema.xml

image

【注意】列表定義通過上面的ContentType屬性指定與內容類型的鏈接,以及也定義了有關的字段(Field)

完整的定義如下,它還包含了視圖的定義

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="訂單列表" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/OrderListSolution-OrderList" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/">
  <MetaData>
    <ContentTypes>
      <ContentType ID="0x010078d8727a461f41019c6cca21639181a1" Name="訂單列表" Group="Custom Content Types" Description="填寫和編輯訂單數據" Version="0">
        <FieldRefs>
          <FieldRef ID="{6951653a-c02e-4440-a918-54dc6c6b4ad4}" />
          <FieldRef ID="{308eac8d-86ca-49e9-a65c-43bac42bb9c4}" />
          <FieldRef ID="{442bcf2b-554b-4f53-8877-8612d85cbb8e}" />
        </FieldRefs>
      </ContentType>
    </ContentTypes>
    <Fields>
      <Field Type="Number" DisplayName="訂單編號" Required="FALSE" EnforceUniqueValues="FALSE" Indexed="FALSE" Group="自定義欄" IMEMode="inactive" ID="{6951653a-c02e-4440-a918-54dc6c6b4ad4}" SourceID="{bc8f77ac-9814-448d-9c64-159c9680ecfd}" StaticName="_x008ba2__x005355__x007f16__x0053f7_" Name="_x008ba2__x005355__x007f16__x0053f7_" Customization="" />
      <Field Type="DateTime" DisplayName="訂購日" Required="FALSE" EnforceUniqueValues="FALSE" Indexed="FALSE" Format="DateOnly" Group="自定義欄" IMEMode="inactive" ID="{308eac8d-86ca-49e9-a65c-43bac42bb9c4}" SourceID="{bc8f77ac-9814-448d-9c64-159c9680ecfd}" StaticName="_x008ba2__x008d2d__x0065e5_" Name="_x008ba2__x008d2d__x0065e5_" Customization="">
    <Default>[today]</Default>
  </Field>
      <Field Type="Text" DisplayName="客戶編號" Required="FALSE" EnforceUniqueValues="FALSE" Indexed="FALSE" MaxLength="255" Group="自定義欄" ID="{442bcf2b-554b-4f53-8877-8612d85cbb8e}" SourceID="{bc8f77ac-9814-448d-9c64-159c9680ecfd}" StaticName="_x005ba2__x006237__x007f16__x0053f7_" Name="_x005ba2__x006237__x007f16__x0053f7_" Customization="" />
    </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/images/generic.png" Url="AllItems.aspx">
        <Toolbar Type="Standard" />
        <XslLink Default="TRUE">main.xsl</XslLink>
        <RowLimit Paged="TRUE">30</RowLimit>
        <ViewFields>
          <FieldRef Name="Attachments">
          </FieldRef>
          <FieldRef Name="LinkTitle">
          </FieldRef>
        </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>

【注意】我們現在先不做任何修改。嘗試進行部署看看是什么樣的效果吧

3. 部署列表定義,並對其進行查看和使用

部署成功之后,我們可以在創建新項的窗口中看到這個列表的模板

image

通過輸入一個名稱,然后點擊Create

image

【注意】從這里看出來,列表定義(List Definition)本身不能直接訪問,它只是一個模板,然后需要創建所謂的列表實例才可以使用

上例中的OrderLists就是一個實例(Instance)

【注意】我們目前在默認的視圖中並看不到定義好的訂單編號之類的列,那是因為在視圖中沒有添加這些列。可以在下面的界面中將其添加過來

image

image

image

那么是不是每次都要我們手工去修改這個視圖定義呢?顯然這樣做是不合理的,而我們可以很容易在列表定義中完成這個工作。

4. 修改列表的視圖定義

image 

這樣定義好之后,就很方便了。重新部署,我們來看一下默認生成的那個列表實例

image 

嗯,看起來很不錯吧?

這一篇我們完成了一個列表定義的創建和修改。下一篇我們來談談列表實例的創建和修改


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com