2

Tridion 2011 SP1 用の .NET TBB の作成に取り組んでいます。コンポーネントに 2 つのフィールドがあり、1 つは単一値で、もう 1 つは埋め込みスキーマ フィールドです。

単一値フィールドを取得するために、私は使用しました

string singlefield= package.GetValue("Component.Fields.singlefield"); 

しかし、私が使用した多値フィールドを参照するには。

string multi= package.GetValue("Component.Fields.multi.values"); 

しかし、値を取得していません。

それを行う方法を助けてください。

4

2 に答える 2

7

コンポーネントのどの値にも package.GetValue を使用しません。代わりに、次のようなものを使用します。

// Get the component
Component c = (Component)engine.GetObject(package.GetByName(Package.ComponentName));
// Get the fields
ItemFields fields = new ItemFields(c.Content, c.Schema);
// get our Embedded schema field
EmbeddedSchemaField emb = (EmbeddedSchemaField)fields["emb"];
// Loop
foreach (ItemFields embeddedfields in emb.Values)
{
    foreach (ItemField field in embeddedfields)
    {
        var tField = field as TextField;
        if (tField != null)
        {
            string something = tField.Value;
        }
    }
}
于 2012-03-15T13:59:01.863 に答える
0

次のようにする必要があります。

package.GetValue("Component.Fields.emb.multi[0]");

embはコンポーネント スキーマのフィールドの名前で、埋め込みmulti可能なスキーマの複数値フィールドです。[0]はフィールド インデックスですが、オプションです

于 2012-03-15T12:34:41.907 に答える