0

我还有一个问题。我想创建新的自定义控件,它与动态数据下拉菜单几乎相同。不同之处在于用户不是像这样输入控制详细信息数据:

应该只通过

  • 字典 - ABCDE

其余的 URL 和其他数据应该是默认的并记住在控件中。因此,应该只有 1 个(字典)而不是 4 个输入字段(url、item、label、value)。我已经弄清楚如何删除这些输入字段并添加我想要的:

我只是替换了这部分代码:

                <xf:input ref="@resource">
                    <xf:label lang="en">Resource URL</xf:label>
                    <xf:label lang="es">URL del Recurso</xf:label>
                    <xf:label lang="fi">Resurssi URL</xf:label>
                    <xf:label lang="fr">URL de la ressource</xf:label>
                    <xf:label lang="ru">URL ресурса</xf:label>
                    <xf:label lang="it">URL della risorsa</xf:label>
                    <xf:label lang="de">URL der Ressource</xf:label>
                    <xf:label lang="sv">Resursens adress</xf:label>
                    <xf:label lang="nl">Resource URL</xf:label>
                    <xf:label lang="pt">URL do Recurso</xf:label>
                    <xf:hint lang="en">HTTP URL returning data used to populate the dropdown</xf:hint>
                    <xf:hint lang="es">HTTP URL retornando datos para poblar la lista</xf:hint>
                    <xf:hint lang="fi">HTTP URL palauttaa pudotusvalikon täyttämiseen käytettyä dataa</xf:hint>
                    <xf:hint lang="fr">URL HTTP auquel réside le service</xf:hint>
                    <xf:hint lang="ru">HTTP URL сервиса, данными из которого будет заполнен выпадающий список</xf:hint>
                    <xf:hint lang="it">URL HTTP che da i dati per il menu a tendina</xf:hint>
                    <xf:hint lang="de">HTTP URL die die Inhalte für das Dropdown-Menü liefert</xf:hint>
                    <xf:hint lang="sv">Vanligen en Internetadress som börjar med http://</xf:hint>
                    <xf:hint lang="nl">HTTP URL als bron voor de gegevens in de selectie</xf:hint>
                    <xf:hint lang="pt">HTTP URL devolvendo dados para preencher a lista de opções</xf:hint>
                </xf:input>
                <xf:input ref="xf:itemset/@ref">
                    <xf:label ref="$resources/dialog-actions/items/label"/>
                    <xf:hint ref="$resources/dialog-actions/items/hint"/>
                </xf:input>
                <xf:input ref="xf:itemset/xf:label/@ref">
                    <xf:label ref="$resources/dialog-actions/item-label/label"/>
                    <xf:hint ref="$resources/dialog-actions/item-label/hint"/>
                </xf:input>
                <xf:input ref="xf:itemset/xf:value/@ref">
                    <xf:label ref="$resources/dialog-actions/item-value/label"/>
                    <xf:hint ref="$resources/dialog-actions/item-value/hint"/>
                </xf:input> 

有了这个:

<xf:input ref="@resource">
                    <xf:label lang="en">Dictionary</xf:label>

                    <xf:hint lang="en">Dictionary returning data used to populate the dropdown</xf:hint>
                </xf:input>

现在我不知道如何存储应该记住的默认值以及如何将它们绑定到方法,以便它可以从 url 检索元素到我的下拉控件。请帮忙

4

1 回答 1

0

好的,我做了这样的事情:

<xbl:xbl xmlns:xh="http://www.w3.org/1999/xhtml"
         xmlns:xf="http://www.w3.org/2002/xforms"
         xmlns:ev="http://www.w3.org/2001/xml-events"
         xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
         xmlns:my="http://www.example.com/"
         xmlns:saxon="http://saxon.sf.net/"
         xmlns:fb="http://orbeon.org/oxf/xml/form-builder"
         xmlns:xbl="http://www.w3.org/ns/xbl"
         xmlns:xxbl="http://orbeon.org/oxf/xml/xbl">

    <metadata xmlns="http://orbeon.org/oxf/xml/form-builder">
        <display-name lang="en">Custom Controls</display-name>
    </metadata>

    <xbl:binding id="my-dictionary-selector" element="my|dictionary-selector" xxbl:mode="lhha binding value">
        <fb:metadata>
            <fb:display-name lang="en">Dictionary Selector</fb:display-name>
            <fb:icon lang="en">
                <fb:small-icon>/forms/orbeon/builder/images/dropdown.png</fb:small-icon>
                <fb:large-icon>/forms/orbeon/builder/images/dropdown.png</fb:large-icon>
            </fb:icon>
            <fb:template>
                <my:dictionary-selector>
                    <xf:label ref=""/>
                    <xf:hint ref=""/>
                    <xf:help ref=""/>
                    <xf:alert ref=""/>
                        <xf:itemset ref="()">
                            <xf:label ref="()"/>
                            <xf:value ref="()"/>
                        </xf:itemset>
                </my:dictionary-selector>
            </fb:template>
            <fb:control-details>
                <xf:input ref="@resource" name="aa">
                    <xf:label lang="en">Dictionary</xf:label>
                    <xf:hint lang="en">Dictionary name returning data used for the suggestions</xf:hint>
                </xf:input>
            </fb:control-details>
        </fb:metadata>
        <xbl:template>
            <xf:select1 appearance="minimal" ref="xxf:binding('my-dictionary-selector')">
                <xf:item>
                    <xf:label>[Select...]</xf:label>
                    <xf:value/>
                </xf:item>
                <xf:itemset nodeset="doc('http://localhost:8080/OrbeonForm/resources/dictionaries/colors')/collection/dictionary">
                    <xf:label ref="key"/>
                    <xf:value ref="value"/>
                </xf:itemset>
            </xf:select1>
        </xbl:template>
    </xbl:binding>


</xbl:xbl>

它可以工作(从给定的 xml 中获取值),但现在我想给用户机会来选择字典的名称。因此,在 xml 文件(http://localhost:8080/form/resources/dictionaries/colors)的 URL 中,代替颜色,我想插入用户在控制详细信息中输入字典的字符串。我怎样才能实现它?用户单击控制详细信息中的应用后,它会更改下拉列表吗?

于 2015-12-04T15:15:51.133 回答