首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在zk中设置列表框mold="select“中的选定值

无法在zk中设置列表框mold="select“中的选定值
EN

Stack Overflow用户
提问于 2013-02-05 18:33:22
回答 1查看 4.8K关注 0票数 1

我正在使用ZK6.5并遵循MVVM模式,我在使用列表框mold="select“时遇到了问题,我希望--select--作为我列表框中的第一个选择选项,但我不能这样做,这是我的代码

这是我的.zul页面

代码语言:javascript
复制
<listbox style="width:70px" id="lstGrpNames" selectedItem="@bind(vmmodel.selSearchGroup)" mold="select" tabindex="0">

                    </listbox>

//这是我的控制器代码

代码语言:javascript
复制
@Wire("#lstGrp")
    private Listbox lstGrp;

@AfterCompose(superclass=true)
    public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {
        Selectors.wireComponents(view, this, false);

        if (lstGrp != null) {

            lstGrp.setSelectedItem(lstGrp
                    .appendItem("--Select--", "")); //i want this to be the selected option while page is loaded

            if (this.groups != null && this.groups.size() > 0) {
                for (Group groupObj : this.groups) {
                    lstGrp.appendChild(new Listitem(groupObj.getName(),
                            groupObj));
                }
            }
            lstGrp.setSelectedItem(lstGrp.getItemAtIndex(0));
}
EN

回答 1

Stack Overflow用户

发布于 2013-02-05 20:11:08

这就是你可以做的..

演示代码的ZUL文件。

代码语言:javascript
复制
    <listbox model="@bind(vm.dataList)"  >
        <listhead>
            <listheader value="A"></listheader>
            <listheader value="B"></listheader>
            <listheader value="C"></listheader>

        </listhead>
        <template name="model" var="mymodel">
            <listitem>
                <listcell>

                    <textbox value="@bind(mymodel.a)" />
                </listcell>
                <listcell>
                    <label value="@bind(mymodel.b)" />

                </listcell>
                <listcell>
                    <label value="@bind(mymodel.c)" />

                </listcell>
            </listitem>
        </template>
    </listbox>
</window>

演示代码的Java代码...

代码语言:javascript
复制
package com.team;

import java.util.ArrayList;
import java.util.List;

import org.zkoss.bind.annotation.AfterCompose;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.ContextParam;
import org.zkoss.bind.annotation.ContextType;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.Component;
import org.zkoss.zul.ListModelList;


public class MyListbox  {

    private ListModelList<Data> dataList;

    @AfterCompose
    public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {
        try {
            dataList = new ListModelList<Data>();
            Data data;
            data = new Data("a1", "b1", "c1");
            dataList.add(data);
            data = new Data("a2", "b2", "c2");
            dataList.add(data);
            data = new Data("a3", "b3", "c3");
            dataList.add(data);
            dataList.addToSelection(dataList.get(0));

        } catch (Exception e) {

        }
    }

    @Command
    public void ctrlKeyClick(@org.zkoss.bind.annotation.BindingParam("item") String ctekKeyCode ){
         int keyCode =Integer.parseInt(ctekKeyCode);
         String s = "";
         switch(keyCode){
             case 65: s = "Ctrl+A";break;
             case 119: s = "F8";break;
             case 83:s="Ctrl+S";break;
             case 68:s="Ctrl+D";break;
         }
         Messagebox.show(s+" is pressed", "CtrlKey",
                 Messagebox.OK, Messagebox.EXCLAMATION);
        System.out.println("I am clicked");
    }

    @Command
    @NotifyChange("dataList")
    public void addNewItem(){
        Data data = new Data("", "", "");
        dataList.add(data);
    }


    public ListModelList<Data> getDataList() {
        return dataList;
    }

    public void setDataList(ListModelList<Data> dataList) {
        this.dataList = dataList;
    }


    public class Data {
        String a;
        String b;
        String c;
        public String getA() {
            return a;
        }
        public String getB() {
            return b;
        }
        public String getC() {
            return c;
        }
        public void setA(String a) {
            this.a = a;
        }
        public void setB(String b) {
            this.b = b;
        }
        public void setC(String c) {
            this.c = c;
        }
        public Data(String a, String b, String c) {
            super();
            this.a = a;
            this.b = b;
            this.c = c;
        }

    }
}

在这里你可以检查这行代码..

代码语言:javascript
复制
dataList.addToSelection(dataList.get(0));

这将向您显示所选项目

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14705404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档