여러 파일을 업로드하는 데 사용되는 페이지가 있습니다. 각 파일에 대해 사용자는 형식과 설명을 지정해야합니다. 따라서
MultiFileUploadField
을 사용할 수 없습니다 ...RepeatingView
과FileUploadField
을 각 요소에 필요한 다른 두 필드와 함께 사용합니다.Wicket : ListView가있는 FileUploadField문제는 그 "파일 추가"버튼을 클릭 할 때마다 (
AjaxLink
), 이미 파일을했다FileUploadFields
... 널 (null)으로 재설정됩니다
내가 무엇을 할 수
?IModel<List<EtdDokument>> listModel = getListModel();
ListView<EtdDokument> dokumenteList = new ListView<EtdDokument>("dokumenteList", listModel) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<EtdDokument> item) {
final boolean showHeaders = ((getList() == null) || getList().size() == 0);
final WebMarkupContainer headRow = new WebMarkupContainer("headRow");
headRow.setVisible(showHeaders);
item.add(headRow);
EtdDokumentRowPanel etdDokumentRow = new EtdDokumentRowPanel("bodyRow", item.getModel());
item.add(etdDokumentRow);
}
};
dokumenteList.setReuseItems(true);
add(dokumenteList);
AjaxLink<Void> addLink = new AjaxLink<Void>("addDokument") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
EtdConfiguration etdConfig = EtdConfigForm.this.getModelObject();
final EtdDokument newValue = new EtdDokument(etdConfig);
tempEtdDokumente.add(newValue);
target.addComponent(EtdConfigForm.this);
}
};
add(addLink);
EtdDokumentRowPanel
, 나는 단지FileUploadField
파일에 대한TextField
보여 흥미 무관 : 여기 는 (죄송합니다, 그것은RepeatingView
하지만ListView
아니었다)이ListView
입니다 설명과DropDownChoice
을 사용하여 문서 유형을 선택하십시오 (우리 고유의 분류). 그것은 어떤 갱신 후 선택, 그리고post
이벤트가 발생할 때FileUploadField
에 대한 실제 모델 객체 (선택이 끝난 파일)에만 설정되어 HTML의<input type="file">
losts 때문에
코드를 입력하십시오. 적어도 당신의'RepeatingView'과'Add File' 링크 구현. –
자, 코드 조각을 추가했습니다. – diminuta