簡體   English   中英

使用Wicket MultiFileUploadField在輸入字段上設置id屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM