オブジェクトを追加、編集するためにzkフレームワークのmvvmアプローチを使用しています。初めて[追加]ボタンをクリックすると、オープニングフォームが空になり、スムーズに実行されます。リストからレコードを編集した後、コンボボックスの値が事前に選択されており、すでに選択されている値を選択しないでください。選択しないと、nullになり、フォームを送信できません。これは、クラッド操作を成功させるために選択した値を再度選択できないことを意味します。すべてのケースの編集機能は正常に機能しており、問題はなく、すべてのテキストボックスとintboxが正常に機能しています。
私はこの記事をフォローしています http://books.zkoss.org/wiki/Small_Talks/2012/February/MVVM_in_ZK6:_Form_Binding
newObject、selectedObject、editObjectの3つのオブジェクトがあります
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();
}