DataView
은 DataProvider
을 사용하여 값을 표시합니다. AjaxRequestTarget
에 DataView
(또는 해당 상위)을 추가하면 DataProvider
에서 값을 다시 가져옵니다. DropDownChoice
에서 선택을 변경하면 DataProvider
이 업데이트됩니다.
예.
dropDown.add(new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
dataProvider.setSelectedItem(dropDownModel.getObject());
target.add(dataView); //o dataView's parent
}
});
UPDATE
MyDataProvider {
private SomeObject selectedItem;
@Override
public Iterator<? extends SomeOtherObject> iterator(long first, long count) {
return this.service.findAllForItem(this.selectedItem).iterator();
}
//+size + setter for selectedItem
}
당신은 DataProvider를를 업데이트 좀 도와 주 시겠어요? 나는 그것을위한 어떤 방법도 보지 못한다. DataView 객체에 getDataProvider가 있고 setter가 없습니다. – estelmo
** ** ** DataProvider에서 메소드를 만들어야합니다. 예제에서'setSelectedItem'은 존재하지 않습니다; 당신은 그것을 만들어야 만합니다. –
'size()'메소드를 잊지 마라! – RobAu