在这里您可以看到示例我们如何做到这一点..让我们假设
public void createReorderModal(Component comp) {
Map args = new HashMap();
List list = new ArrayList();
list.add("test");
args.put("availableList", list );
Executions.getCurrent().createComponents("/core/component/model_window.zul",comp, args);
}
现在在model_window.zul中有一个自己的 ViewModel ,现在在这个 viewmodel 的 afterCompose 方法中编写下面的代码,以获取在上一步中传递的参数。
@AfterCompose
public void doAfterCompose(@ContextParam(ContextType.VIEW) Component view,
@ExecutionArgParam("availableList") List list) {
//Your Business logic
}
现在您将如何将数据从子模式 Window 传递到主 Window ,因为您已经像这样在子 Window 中创建了一个按钮。
<button onClick="@command('doSort')" type="button" label="Sort" />
现在在这个doSort()方法中做这个逻辑..
@Command
public void doSort(@ContextParam(ContextType.VIEW) Component view) {
Map<String, Object> params = new HashMap<String, Object>();
List someData = new ArrayList();
someData.add(Add some Data which you send back);
params.put("orderBySelection", someData);
Binder bind = (Binder) view.getParent().getAttribute("binder");
if (bind == null)
return;
bind.postCommand("doColumnSorting", params);
view.detach();
}
现在您将检查这行代码..
bind.postCommand("doColumnSorting", params);
这条线会为你做魔法。这条线将调用父视图模态方法,现在你在父视图模型类中并更改受尊重的值并通知更改它。可能这会帮助你