2009-07-16 7 views
0

CAMLを介して参照フィールドをサイト列として作成しようとしています。ルックアップのソースとして使用したいリストはフィーチャーレシーバーで作成されるので、IDはわかりません。私はList属性のリストにパスを入れることができることを示すいくつかのブログ記事を読んだ。これらの記事のコメントからは、この解決策は一部の人には役立つが、他の人には当てはまらないようだ。私は後者のグループに入っています。CAML経由のサイト列としての参照フィールド

私は、ルックアップサイト列Iを使用して、コンテンツタイプを関連付けるしよう:「HRESULTからの例外:0x80040E07」

<Field 
    ID="{da94e56b-428f-4b95-b4c6-24aed0256475}" 
    Name="Test_x0020_Lookup_x0020_Column" 
    StaticName="Test_x0020_Lookup_x0020_Column" 
    DisplayName="Test Lookup Column" 
    Type="Lookup" 
    Required="FALSE" 
    List="Lists/Test" 
    ShowField="Title" 
    PrependId="TRUE" 
    Group="Test Site Columns" /> 

    <ContentType 
    ID="0x0100B6D92594DDCE8E479D0EB0C414C463B0" 
    Name="Test Lookup Content Type" 
    Version="0" 
    Group="Test Content Types"> 
    <FieldRefs> 
     <FieldRef 
     ID="{da94e56b-428f-4b95-b4c6-24aed0256475}" 
     Name="Test_x0020_Lookup_x0020_Column" 
     Required="TRUE" /> 
    </FieldRefs> 
    </ContentType> 

答えて

2

がList属性にリストにパスを置くが、私はそれを行っている作業を行います私のプロジェクトは成功しました。私があなたがチェックしてほしいことの1つは、機能の順序です。機能を手動で実行していますか?またはそれらをonet.xmlで使用します。あなたのコンテンツタイプ機能が実行されるとき、参照するリストが既に存在するはずです。

また、ログフォルダにあるSharePointログには、より詳細な情報が必要です。多くの場合、そこにあるエラーの詳細を調べてみてください。

1

私はschema.xmlで定義されたリストで同じ問題がありました。フィールドdefとschema.xmlファイルの両方に同じパスが指定されていることを確認して修正しました。

1

リスト名は、いずれかの私のために動作しません。

Feature Activatorを使用してリストとルックアップの列を動的に作成する必要がありました。 SharePointオブジェクトモデル経由で参照リストを作成すると、Guidが作成されます。その後、次の方法で上記の既存のCAMLを使用してルックアップ列を必要とするリストに動的に列を作成することができます

 

string xml = // your CAML up top with a TOKEN to replace List="{TOKEN}" 


SPList listWithLookupColumn = web 
      .Lists 
      .Add(url,description,SPListTemplateType.GenericList); 

Guid listId = listWithLookupColumn.ID; 

xml = xml.Replace("TOKEN",listId); 

// some code to find the list you want lookup column on 
SPList listToAddLookupColumn = listRepository(listNameToFind); 

listToAddLookupColumn 
    .AddFieldAsXml(xml,true,SPAddFieldOptions.AddToDefaultContentType) 
 
3

がサイトcoloumn上書き

+0

=「TRUE」を作成するときに、このプロパティを追加してくださいこれは最高の答えですが、誰も投票しません。 – ShootingStar

+0

正確な理由とその理由を明記してください。 – Alexey

関連する問題