循环遍历.NET程序集TBB中的多值字段和嵌入式架构字段

Pat*_*tan 2 tridion

我正在为Tridion 2011 SP1创建.NET TBB.我在组件中有两个字段,其中一个是单值的,另一个是嵌入式模式字段.

要检索单值字段,我已经使用过了

string singlefield= package.GetValue("Component.Fields.singlefield"); 
Run Code Online (Sandbox Code Playgroud)

但是要参考我用过的多值字段.

string multi= package.GetValue("Component.Fields.multi.values"); 
Run Code Online (Sandbox Code Playgroud)

但它没有取得价值.

请帮助一种方法.

Nun*_*res 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)