有没有办法在高级模式和自动模式下隐藏Primefaces fileUpload进度条和按钮?

时间:2012-11-02 21:15:15

标签: jsf-2 primefaces

有没有办法在高级模式和自动模式下隐藏Primefaces fileUpload进度条和按钮?

以下是我正在使用的代码:

<p:fileUpload id="scriptUpload" 
                        widgetVar="importDevicesWidget" 
                        fileUploadListener="#{scriptUploadBean.handleFileUpload}"
                        auto="true"
                        label="Choose.."
                        mode="advanced" 
                        update=":infoMessages"
                        sizeLimit="8192" 
                        allowTypes="/(\.|\/)(txt)$/"
                        onstart="clearInvalidFileMsg();$('#progress').show();"
                        oncomplete="clearInvalidFileMsg();$('#progress').hide();importDevicesDialogWidget.hide()"/> 

问题在于,每个文件的进度条旁边显示的按钮都没有意义,因为模式是自动的,因此上传已经开始了!

这是一个截图:

enter image description here

5 个答案:

答案 0 :(得分:13)

根据3.4文档.ui-fileupload .start.ui-fileupload .cancel.ui-fileupload .progress选择文件上传的“开始,取消和进度条:

<style type="text/css">
    .ui-fileupload .start {
        display: none;
    }
    .ui-fileupload .cancel {
        display: none;
    }
    .ui-fileupload .progress {
        display: none;
    }
</style>

答案 1 :(得分:3)

对于 PrimeFaces 5 ,这可能是一个解决方案(使用它atm)

.fileupload-simple > .ui-fileupload-content {
    display: none;
}
.fileupload-simple > .ui-fileupload-buttonbar {
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    border-radius: 4px;
}

然后在fileupload-simple组件中使用fileUpload课程,您就可以了:)

答案 2 :(得分:1)

嗯,当我能回答我自己的问题时,我喜欢它:

以下是更新后的代码:

<p:dialog appendToBody="true" id="importDevices" widgetVar="importDevicesDialogWidget" header="Import Devices" resizable="false" modal="true" onShow="centerDialog('#importDevicesDialog');">
            <h:form id="importDevicesForm" enctype="multipart/form-data">
                <h:panelGrid columns="1" cellpadding="5">
                    <p:fileUpload id="scriptUpload" 
                        widgetVar="importDevicesWidget" 
                        fileUploadListener="#{scriptUploadBean.handleFileUpload}"
                        auto="true"
                        label="Choose.."
                        mode="advanced" 
                        update=":infoMessages"
                        sizeLimit="8192" 
                        allowTypes="/(\.|\/)(txt)$/"
                        onstart="clearInvalidFileMsg();$('#progress').show();"
                        oncomplete="clearInvalidFileMsg();$('#progress').hide();importDevicesDialogWidget.hide()"/> 
                    <p:spacer height="10px;"/>
                    <p:commandButton value="Cancel" action="javascript.void(0);" onclick="clearInvalidFileMsg();importDevicesDialogWidget.hide();"/>
                </h:panelGrid>
             </h:form>
        </p:dialog>

这是更新的功能,它隐藏了进度条和按钮,并清除了错误:

function clearInvalidFileMsg(){
                if ($("#importDevicesForm").is(':visible')){
                    importDevicesWidget.uploadContent.find("tr.ui-state-error").remove();
                    importDevicesWidget.uploadContent.find("td.progress").remove();
                    importDevicesWidget.uploadContent.find("td.start").remove();
                    importDevicesWidget.uploadContent.find("td.cancel").remove();                        
                }
            }

答案 3 :(得分:1)

为我工作。 Primefaces 6.0.1

 <style type="text/css">
    .ui-fileupload-content .ui-progressbar {
    width: 0px;
    height: 0px;
    margin: 0
    }
    </style>

答案 4 :(得分:-1)

使用showButtons =&#34; false&#34;在fileUpload标记中。

例如:

&#13;
&#13;
 <p:fileUpload	id="fileUpload" mode="advanced"	dragDropSupport="false"	update="@form" sizeLimit="100000" 	fileLimit="3" allowTypes="/(\.|\/)(xlsx|xls)$/"	 multiple="false" label="Select File" showButtons="false"/>
&#13;
&#13;
&#13;