3

月と呼ばれる数値フィールドである既定のカスタム リストに 1 つの列を追加するだけでよいリストのスキーマを作成しました。フィールドはデフォルト ビューに表示され、実際にリストに作成されます。リストには、適切に設定された値が自動入力されます。問題は、フィールドが表示/編集/新規ページに表示されないことです。データシート ビューから設定できます。スキーマで具体的に設定したときに表示されない理由がわかりません。

どんな提案でも非常に感謝します。

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" 
      Title="ReviewPeriods" 
      FolderCreation="FALSE" 
      Direction="$Resources:Direction;" 
      Url="Lists/ReviewPeriods" 
      EnableContentTypes="TRUE" 
      BaseType="0">
 <MetaData>
  <ContentTypes>
   <ContentTypeRef ID="0x01">
        <Folder TargetName="Item" />
      </ContentTypeRef>
  </ContentTypes>
  <Fields>
   <Field ID="{B99EB797-4057-4a75-90BF-B40D0F89A9D9}"
             Type="Number"
             Decimals="0"
             Min="0"
             Max="100"
             Percentage="FALSE"
             Name="Months" 
             Required="TRUE"
             Group="SEED"
             DisplayName="Months"
             StaticName="Months"
             ShowInDisplayForm="TRUE"
             ShowInEditForm="TRUE"
             ShowInNewForm="TRUE">
   </Field>
  </Fields>
  <Views>   
   <View BaseViewID="0" 
            Type="HTML"
            WebPartZoneID="Main" 
            DisplayName="Default View" 
            DefaultView="TRUE" 
            SetupPath="pages\viewpage.aspx" 
            ImageUrl="/_layouts/images/generic.png" 
            Url="AllItems.aspx">

... 隠されたもの ...

<ViewFields>
          <FieldRef Name="LinkTitle"></FieldRef>
          <FieldRef Name="Months"></FieldRef>
    </ViewFields>
    <Query>
     <OrderBy>
      <FieldRef Name="Title">
      </FieldRef>
     </OrderBy>
    </Query>
   </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>
4

3 に答える 3

4

問題は、フィールドをリストに追加すると同時にコンテンツ タイプを有効にし、使用する唯一のコンテンツ タイプがフィールドを含まないアイテム (0x01) であることを指定することです。したがって、アイテムを追加/編集していて、フィールドを取得できません。

次の 2 つの解決策があります。

  1. コンテンツ タイプを有効にしないでください (さらに <ContentTypes> セクション全体を削除します)。
  2. フィールドを含む新しいコンテンツ タイプを作成し、アイテムの代わりにそのコンテンツ タイプを追加します。
于 2009-12-01T19:26:48.633 に答える
1

私は自分の問題の解決策を見つけました。これらのページはコンテンツ タイプに基づいているため、フィールドは新規/表示/編集フォームにリストされません。この場合、リストのベースとなる Item コンテンツ タイプです。

通常、私は独自のコンテンツ タイプを作成しますが、まったく新しいコンテンツ タイプを定義せずにリストを簡単に作成する方法を見つけようとしています。そのため、コンテンツ タイプ内の既存のフィールドを参照するのではなく、リスト スキーマ内で直接フィールドを定義しました。余分なフィールドが 1 つだけある単一使用のルックアップ リストのためだけにコンテンツ タイプを定義するのは、少しばかげているように思えます。

新しいコンテンツ タイプを作成せずに、フィールドを New/Display/Edit フォームに表示する方法を誰かが提案できる場合は、喜んで代わりに受け入れられる回答にします。

于 2009-12-01T19:23:15.707 に答える
1

あなたがしたように、私は同じことをしていました(作成したいリストごとにコンテンツタイプを作成します)以下のコードにヒットするまで。以下のコードを見ると、<ContentTypes>タグが削除され、タイトル フィールドと追加フィールドの説明が強制的に追加されています。

<Fields>
  <Field ID="{9830F5FC-99E0-4052-9CC0-50CBEDE80002}" Type="Text" Name="Title" DisplayName="Type Name" Required="TRUE" MaxLength="255" Version="1" RowOrdinal="0">
    <Default/>
  </Field>      
  <Field Type="Note" DisplayName="Description" Required="FALSE" NumLines="6" RichText="TRUE" RichTextMode="Compatible" Sortable="FALSE" 
         ID="{63C25492-BA98-4096-A6D7-F85885E0A425}" Name="Description"
          RowOrdinal="0"/>
</Fields>

......隠れた

<MetaData>

回答ごとに正しかった +1

于 2009-12-02T04:34:37.033 に答える