1

我在 zk 中有一个 zul 页面,我只需要刷新中心和其他页面,具体取决于我的菜单。

我的菜单是我从数据库加载的列表

`

    <borderlayout>
     //the header of my page
        <north>
            <html><![CDATA[
                   <h1> <b>My page</h1><h3>page 1</b></h3>
                   ]]></html> 

        </north>
        <west> 
    //Here I load a list that i consult from the database

            <div apply="org.zkoss.bind.BindComposer"
                viewModel="@id('vm')      @init('com.gemalto.segmentation.viewModel.MnoViewModel')">

                <listbox id="list" model="@bind(vm.mnos)" width="200px" rows="20">
                    <listhead>
                        <listheader label="Operators" sort="auto" />
                    </listhead>
                </listbox>

                <style>
                    div.z-listbox-body .z-listcell {
                    padding: 2px 5px;
                    }
                </style>
            </div>  


        </west> 

     //And here i need charge a page depending of the option of my list menu.
        <center> 
   .
   .
   .

        </center> 
    </borderlayout> 
</zk>`

我的java类是:

` 包 com.gemalto.segmentation.viewModel;

import persistence.dao.MnoDAO;
import persistence.db.Mno;
import java.util.ArrayList;
import java.util.List;
import org.zkoss.bind.annotation.Command;
import org.zkoss.zul.Messagebox;

public class MnoViewModel {
    private Mno mno = new Mno();
    private boolean enabled;

    public boolean isEnabled() {
        return enabled;
    }

    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }

    public Mno getMno() {
        return mno;
    }

    public void setMno(Mno mno) {
        this.mno = mno;
    }

    public List<String> getMnos() {
        List<Mno> operator =  MnoDAO.getMnos();
        List<String> mnos = new ArrayList();
        for(Mno Lmnos : operator) {
            mnos.add(Lmnos.getMnoName());
        }
        return mnos;
    }
    @Command
    public void submit(){
        if(MnoDAO.getMnoByName(mno.getMnoName()) != null){
            Messagebox.show("Mno exist");
        }else{
            short a=0;
            if(isEnabled())
                a=1;

            mno = new Mno(mno.getMnoName(), mno.getTrigram(), mno.getPrefix(),     mno.getPrefixRequired(), mno.getProjectCode(), a);
            MnoDAO.createMno(mno);
            Messagebox.show("Mno created");
        }  
    }

    @Command
    public void delete(){
            Messagebox.show("deleted");

    }
}

` 而且我不知道如何将菜单中的列表转换为重定向到我中心页面的其他页面。

而且我不知道如何只刷新页面的中心

4

2 回答 2

0

您可以在中心使用包含组件。这允许您动态添加页面,仅更改 src 属性。您可以插入窗口、div 或任何组件。此外,您可以使用 Executions.createComponents 在服务器端创建窗口。一切都取决于您使用的模式(MVVM 或 MVC)。评论我们,我们会帮助你。

问候

于 2013-09-18T15:53:16.470 回答
0
  1. 您可以使用Children Binding创建菜单。
  2. 要仅刷新中心,您可以在中心内附加一个包含组件并更改它的 src 属性

    或者,您可以通过以下步骤进行操作:

    一个。删除所有中心的孩子:center.getChildren().clear();
    b。create center's children by: Executions.createComponents,参考Load ZUML in Java

于 2013-09-18T10:45:32.983 回答