2011-08-03 8 views
0

現在、Sharepoint 2010およびSharepoint APIを使用して、既存のドキュメントリストを含むドキュメントライブラリを作成しています。Sharepoint 2010メタデータフィールドKey、Value

特定のドキュメントリストをループして、ドキュメントの「タイプ(メタデータフィールド)」に応じてそれらを異なるドキュメントライブラリに追加するWinFormを作成しました。タイプは、特定のドキュメントの「メタデータフィールド」を読み取ることによって決定されます。メタデータフィールドは、のHashtableを作成することによって読まれSPFields

  • 質問

文書のメタデータフィールドは、「タイプ」をdeterminするために読み込まれると、私はMetadatafield「タイプ」(Key)が実際に引き出すことを実現していますKeyのための「タイプ+ TaxHTField0」とし、値が値として引き出し| GUID

ですから、例えば、それはトンから戻ったとき、私のメタデータフィールドがDoc_x0020_Type呼び出された場合私たちは余分なcharatersを追加eleminateために、SharePointとメタデータのキーと値の両方にGUIDに設定できる設定があり、彼はそれがDoc_x0020_TypeTaxHTField0としてこの値がちょうど'products'する必要があります出てくるのAPIが、それは

products|21EC2020-3AEA-1069-A2DD-08002B30309D 

として出てきますフィールド?

以下

は、私は問題を是正するために行われますが、それは我々がこれは仕様によるものSharePointで

public String GetLibrary(Hashtable itemProperties) 
    { 
     String typeMetaField = "Doc_x0020_TypeTaxHTField0"; 
     String sKey = String.Empty; 
     foreach (DictionaryEntry deEntry in itemProperties) 
     { 
      sKey = deEntry.Key.ToString(); 
      if (sKey == typeMetaField){ 
       _type = deEntry.Value.ToString(); 
       string[] value = _type.Split('|'); 
       _type = value[0].Trim(); 

      } 
     } 

     return GetDocumentLibrary(_type); 
    } 

答えて

0

を設定することができます設定だのか疑問に思ってきたものです。

独自のコンテンツタイプ(「MyTaxField」など)にタクソノミーフィールドを追加すると、SharePointはUIで選択した値のラベルとGUIDを含む非表示の「Notes」フィールドを自動生成します。

SPSiteDataQueryを使用する場合は、複数の値を許可するタクソノミフィールドに空の値が返されるため、これは非常に便利です(単一のタクソノミフィールドでも機能します)。

タクソノミの値を取得する唯一の方法は、 'MyTaxFieldTaxHTField0'という名前の隠しフィールドにaを付けることです。

あなたが発見したように、このフィールドはyoudのようにフォーマットされていないかもしれません:)。

これはテストしていませんが、コンテンツタイプに「Doc_x0020_Type」というフィールドが含まれているかどうかを確認しましたか(TaxonomyFieldValue(Collection)タイプの可能性があります)?

+0

はい私はとにかく後になっている "Doc_x0020_Type"を含んでいます。コメントありがとう.. – Chin

関連する問題