2016-03-08 63 views
0

我想要设置PrimeFaces组件的输入按钮类型=“文件”的样式<p:fileUpload value="#{dms.fileToUpload}" mode="simple" skinSimple="true" styleClass="chooseFile"/>样式p:上传简单输入按钮

enter image description here

正如你所看到的变化`整个背景,而不是输入按钮本身。是否有可能改变按钮的风格?

我使用PrimeFaces 5.1

+0

玩这个使用的是旧版本的PF?从5.3生成的HTML看起来完全不同。 – Kukeltje

+0

问题是所有的答案不帮助我,因为我不能添加一个类到p:fileUpload内部的输入。 –

+0

@BalusC:我把它标记为最初的副本,但是当开始在PF展示中查找简单模式时,它有一个“解决方法”,因此您可以设置按钮的样式。因此,我想创建一个答案,考虑旧版和新版PF版本,旧版本中指的是这个副本。你能重新开放吗? – Kukeltje

回答

1

在旧PrimeFaces版本中,简单的上传使用一个普通的HTML上传其cannot be styled。 PrimeFaces 5.1是简单上传无法直接打样的版本之一。

如果您在for属性中使用了正确的值(我在展示中尝试过),则可以在小提琴中找到解决方法。

然而,新版本使用'wrapping workaround',由skinSimple="true" attribute启用,您似乎认为它也可以在您的版本中使用,但它不是。 PrimeFaces生成下面的HTML那么作为上传控件的一部分:

<span class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left"> 
    <span class="ui-button-icon-left ui-icon ui-c ui-icon-plusthick"/> 
    <span id="j_idt88:j_idt89_label" class="ui-button-text ui-c">Choose</span> 
    <input id="j_idt88:j_idt89_input" name="j_idt88:j_idt89_input" aria-labelledby="j_idt88:j_idt89_label" type="file" /> 
</span> 

ui-button可以风格反正你喜欢,因为它是wraps`真正的文件输入是有效的无形。

您可以在PrimeFaces showcase

+0

感谢您的回复。你能给我链接到以前链接的重复问题吗? –

+0

这是在我的回答 – Kukeltje

+0

对不起,没有看到。谢谢。 –