[英]How to use MultiFileUploadField in wicket for multiplfe file selection?
[英]Setting id attribute on input field using Wicket MultiFileUploadField
在我的小組課程中,我有以下代碼:
private Fragment fileUploadField(String id, UploadFeedbackPanel feedbackPanel, ComponentFeedbackPanel componentFeedbackPanel) {
String uploadType = isJSEnabled ? "multiple" : "single";
Fragment uploadFragment = new Fragment( "uploadContainer", uploadType, this );
if (isJSEnabled) {
multipleUpload = new MultiFileUploadField( id, new PropertyModel<Collection<FileUpload>>( this, "multiUploads" ), MAX_FILES );
uploadFragment.add( multipleUpload = multipleUpload);
multipleUpload.add( newOnChangeAjaxBehavior( feedbackPanel, componentFeedbackPanel ) );
} else {
uploadFragment.add( singleUpload = new FileUploadField( id ) );
singleUpload.add( newOnChangeAjaxBehavior( feedbackPanel, componentFeedbackPanel ) );
}
return uploadFragment;
}
我想為此字段添加標簽,但無法獲取實際的輸入字段ID。 您可以看到此操作適用於單個上載字段,因為輸入字段本身是呈現的,沒有任何周圍的元素。 但是,在使用MultiFileUploadField
時似乎沒有暴露這一點。
另一個可接受的答案是使用FileUploadField
和具有multiple=true
屬性的文件集合。 但是我不確定如何將文件數限制為僅MAX_FILES
。
<label wicket:for="file"><wicket:msg key="file">File:</wicket:msg></label>
<div wicket:id="uploadContainer" class="col-right">[upload fragment shows here]</div>
<wicket:fragment wicket:id="single">
<input wicket:id="file" type="file"/>
</wicket:fragment>
<wicket:fragment wicket:id="multiple">
<div wicket:id="file" class="mfuex"></div>
</wicket:fragment>
Wicket版本6.15.0。
MultiFileUploadField
使用JavaScript生成輸入字段: https : //github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField .js#L91看看是否可以以某種方式插入那里。 如果您找到了一種優雅的方式,我們很樂意將其包含在下一版的Wicket中!
如果您使用'multiple'屬性,請檢查: 如何限制html中的文件上傳數量?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.