我正在研究用于保存组件的事件处理程序。
我的目标是在用户基于模式创建和组件时执行一些验证。
我有一个名为“Employee”的模式。
Employee 有一个名为“Experience”的嵌入式模式,它是多值的。
经验有 3 个领域。
- 角色:下拉列表中的值是 Manager、Lead。
- 公司:文本字段
- 年:文本字段
当用户在这些字段中输入一些数据时,我想在保存之前进行一些验证。
高级设计看起来像这样。
- 加载组件的实例
- 导航到嵌入字段“体验”
对于每一个“经验”。我需要获取“角色”的值,并检查是否在其他两个字段中输入了适当的值(通过编写组件保存事件)
For( all the repeated "Experience")
{
If (Role=="Manager")
check the values in the other two fields and do some validation
If (Role=="Lead")
check the values in the other two fields and do some validation
}
我一直在提取嵌入字段中子字段的值和名称。
我试过了:
Tridion.ContentManager.Session mySession = sourcecomp.Session;
Schema schema= sourcecomp.Schema;
if(schema.Title.Equals("Employee"))
{
var compFields = new ItemFields(sourcecomp.Content, sourcecomp.Schema);
var embeddefield = (EmbeddedSchemaField)compFields["Experience"];
var embeddedfields = (IList<EmbeddedSchemaField>)embeddefield.Values;
foreach(var a in embeddedfields)
{
if(a.Name.Equals("Role"))
{
string value=a.Value.ToString();
}
}
}
实际上我被困在如何同时检索其他字段中的值。
任何人都可以解释它是如何完成的吗?