占位符属性在组合框中,文本框,zk中的doublebox

时间:2013-07-26 06:18:18

标签: placeholder zk

如何在占位符中添加内容,例如静态动态内容。

e.g:

<doublebox maxlength="10"
           mandatory="@load(something.valueRequired)"
           width="250px"
           tooltiptext="Enter Number"
           value="@bind(something.infoNumericValue)"
           placeholder="@load(something.infoData);">
</doublebox>

所以,请告诉我如何添加

enter with dynamic content(@load(something.infoData))

占位符中显示为“输入您的内容”。

4 个答案:

答案 0 :(得分:1)

您可以使用EL表达式: -

 placeholder="Enter ${something.infoData}"

你在EL表达式中编写的任何东西都需要先加载到zul中。所以确保你的东西已经加载了

答案 1 :(得分:1)

发现这个宝石埋在ZK MVVM EL documentation

<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
...
<doublebox placeholder="@load(c:cat('enter your ',something.infoData))"/>

首先我们加载核心ZK标记库,然后我们可以使用cat函数将静态文本与动态加载的文本连接起来。

答案 2 :(得分:0)

EL($ {})和 MVVM(@)表达式不能与文本文字混合使用。所以,甚至以下都不起作用:

&lt; label value =“Literal $ {expression}”/&gt;

<label value="Literal @load(data)"/>

由于整个事物不是表达式,因此ZK不会将其解释为表达式,而只是文本。注意我在这里使用标签来表达观点,但这适用于使用这些表达式的任何地方,包括占位符。

我的建议是将其移回您的视图模型:

<doublebox placeholder="@load(vm.placeholder)"/>

...

public MyViewModel {

    private Something something;

    public String getPlaceholder() {
        return "Enter a " + something.getInfoData();
    }

}

答案 3 :(得分:0)

khcyt's profile

给出的答案   
<zk> <zscript>

    class A
    {
        public A(String s, Long v, Boolean is_group)                    { s_= s; v_= v; is_group_= is_group; }

        public String getLabel()        { return s_; }
        public void setLabel(String s)  { s_=s; }
        public Boolean isGroup()        { return is_group_; }
        public Long getValue()          { return v_; }
        public String getPlaceholder()  { return "Please type some text"; }

        String s_= null;
        Long v_= null;
        Boolean is_group_= null;
    }

    lm.add(new A("Today", 1L, Boolean.TRUE));
    lm.add(new A("RE: Bandbox Autocomplete Problem", 2L, Boolean.FALSE));
    lm.add(new A("", 3L, Boolean.FALSE));
    lm.add(new A("RE: FileUpload", 4L, Boolean.FALSE));
    lm.add(new A("", 5L, Boolean.FALSE));

    lm.add(new A("Yesterday", 10L, Boolean.TRUE));
    lm.add(new A("", 11L, Boolean.FALSE));
    lm.add(new A("RE: SelectedItemConverter Question' ite", 12L, Boolean.FALSE));

    lm.add(new A("Last week", 100L, Boolean.TRUE));
    lm.add(new A("RE: Times_Series Chart help", 101L, Boolean.FALSE));
    lm.add(new A("", 102L, Boolean.FALSE));

    class VM
    {
        public ListModel getListModel()     { return lm; } 
    }
]]></zscript>

<window id="win" title="Window ZK6 dynamic template" border="normal" width="600px" 
        apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('VM')" >                 
    <listbox model="@bind(vm.listModel) @template(each.isGroup() ? 'group_model' : 'item_model')">
        <listhead>
            <listheader hflex="3" label="Column 1"/>
            <listheader hflex="1" label="Column 2"/>
        </listhead>
        <template name="group_model">
            <listgroup open="true" label="@load(each.label)"/>
        </template>
        <template name="item_model">
            <listitem vflex="1">
                <listcell>
                    <textbox hflex="1" placeholder="@init(each.placeholder)" value="@bind(each.label)"/>
                </listcell>
                <listcell>
                    <label value="@load(each.value)"/>
                </listcell>
            </listitem>
        </template>
    </listbox>
</window>

</zk>