如何在对话框的负载上打开多字段的第一项?

时间:2015-08-18 13:30:28

标签: javascript extjs cq5 aem

我需要在对话框加载时打开多字段的第一项。我查看了多字段的API文档但无法找到。

<promo
                    jcr:primaryType="cq:Widget"
                    fieldLabel="abcd"
                    hideLabel="false"
                    itemId="abcd"
                    name="./abcd"
                    xtype="[multifield]">
                    <fieldConfig
                        jcr:primaryType="cq:Widget"
                        hideLabel="false"
                        layout="form"
                        name="./abcd"
                        title="abcd Item Info"
                        xtype="customPanel">
                        <items jcr:primaryType="cq:WidgetCollection">

                        </items>
                    </fieldConfig>
                </promo>

请建议。

2 个答案:

答案 0 :(得分:3)

您可以在加载内容后收听Multifield触发的loadcontent事件。如果最初没有可用内容,请使用addItem()方法添加项目,然后重做布局。

使用多路径字段的示例配置如下所示。您可以根据自己的要求进行调整。

<promo
    jcr:primaryType="cq:Widget"
    fieldLabel="Select Paths"
    name="./paths"
    xtype="multifield">
    <fieldConfig
        jcr:primaryType="nt:unstructured"
        xtype="pathfield" />
    <listeners
        jcr:primaryType="nt:unstructured"
        loadcontent="function(field, record)
        {
           if(record.get('paths') == undefined)
          {
            field.addItem(); field.doLayout();
          }
        }" />
</promo>

答案 1 :(得分:2)

改进上面提供的解决方案,尝试用

替换loadcontent行
loadcontent="function(field, record) {if(field.getValue().length == 0) {field.addItem();} }"