我使用zk框架mvvm方法来添加、编辑对象。当我第一次点击添加按钮时,打开的表单是空的,它运行得很顺利。在编辑列表中的记录后,我得到了预先选择的组合框值,并且已经选择的值不能被选择,否则,我将为null,并且我不能提交表单。这意味着我不能再次选择所选的值来成功进行crud操作。我对每个案例的编辑功能都很好,没有问题,所有文本框和intbox都正常工作
我在关注这篇文章http://books.zkoss.org/wiki/Small_Talks/2012/February/MVVM_in_ZK6:_Form_Binding
我有三个对象,newObject、selectedObject和editObject
我的zul文件的表单片段
<grid sizedByContent="true"
form="@id('ds')
@load(vmc.newObject, after='addInvoke') @save(vmc.newObject, before='add')
@load(vmc.editObject, after='editInvoke') @save(vmc.editObject, before='edit')
@validator('com.example.MyValidator')"
>
<combobox model="@load(ds.unitList)"
selectedItem="@bind(ds.abc.unit)" readonly="true" maxlength="50"/>
我从SampleViewModel编辑和添加函数的方法片段如下
@Command("edit")
@NotifyChange({ "objectList", "selectedObject", "editObject" })
@Override
public void edit() {
service.editKpi(editObject);
editObject = null;
}
@Command("addInvoke")
@NotifyChange("newObject")
@Override
public void onClickAddButton(){
enableEditMode(false);
isNewMode = true;
newObject = new AbcDTO();
}
我自己已经解决了。
解决方案是使用组合框中的值以及selecteditem