1

私はzkにこのコードを持っています:

@Command
public void showModal(@BindingParam("languageContributionStatus") UserStatus mnoList) {
    //create a window programmatically and use it as a modal dialog.
    final HashMap<String, Object> map = new HashMap<String, Object>();
    setPickedItemSet(mnoList.getMnoList());
    map.put("mnoList", mnoList.getMnoList());

        win = (Window) Executions.createComponents("/comListMnosUser.zul", null, map);

        win.doModal();

}

このコードでは、ページがあり、他のページで他のページを含むウィンドウを作成します。

<zk xmlns="http://www.zkoss.org/2005/zul">    

 <window id="CreateList" border="normal" mode="modal" width="320px"
            apply="org.zkoss.bind.BindComposer"
            viewModel="@id('vm') @init('com.UserMno')">
    <label value="First Name"></label>
    <listbox model="@bind(vm.allMno)" checkmark="true" multiple="true" selectedItems="@bind(vm.mnoList)"/>
    <button id="SaveBtn" hflex="1" label="Save" onClick="@command('save', mnosL=vm.mnoList)" />
</window>

</zk>

次に、前のページで使用する変数 mnoList を保存する必要がありますが、win.doModal(); があるため、ウィンドウを閉じるだけでよいため、Excecution.createComponent を使用できません。

変数mnoListを使用しますが、この変数を他のページで使用するために渡す方法がわかりません。

誰かが私を助けることができますか??

4

1 に答える 1

1

mnoListクラス変数であるため、ボタンを使用してオブジェクトを引数として渡す必要さえなくても、正しい方向に進んでいると思います。または、モーダル Window Java クラスで既に使用できるように ViewModel と言うことができます。できること。

1-同じボタンを使用して、次のようなコードを作成します

<button id="SaveBtn" hflex="1" label="Save" onClick="@command('save')" />

2-UserMno.javaクラスでは、このようなメソッドを使用します。そして、子ViewModelから親ViewModelメソッドを呼び出すロジックを記述します。

    @Command
    public void doReorder(@ContextParam(ContextType.VIEW) Component view) {
Map<String, Object> params = new HashMap<String, Object>(); //create a Map to store 
    params.put("param", mnoList);

        Binder bind = (Binder) view.getParent().getAttribute("binder");
        if (bind == null)
            return;
        bind.postCommand("parentclassMethodName", param);
}

このparentclassMethodNameメソッドは、親の ViewModel クラスにある必要があります。

于 2013-09-30T13:21:15.077 に答える