2011-11-03 35 views
13

Tôi đang cố gắng hiển thị nút chỉ có hình ảnh trên trang của mình nhưng tất cả những gì tôi thấy là nút có ^. Sau đây là mã cho nút của tôi:Hiển thị nút lệnh chỉ với hình ảnh

<p:commandButton onclick="lineSearch.show();" image="backgroung-image:url(/images/title_logo.jpg)"/> 
<p:dialog header="Modal Dialog" widgetVar="lineSearch" modal="true" onCloseUpdate="lineIdField" showEffect="scale" hideEffect="explode"> 
    <ui:include src="lineSearch.xhtml"/> 
</p:dialog> 

Hình ảnh không tồn tại trong thư mục hình ảnh. Nút được hiển thị như sau trong trang:

<button id="j_idt23:j_idt27" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" type="submit" onclick="lineSearch.show();;PrimeFaces.ab({formId:'j_idt23',source:'j_idt23:j_idt27',process:'@all'});return false;" name="j_idt23:j_idt27" role="button" aria-disabled="false"> 
    <span class="ui-button-icon-primary ui-icon backgroung-image:url(/images/title_logo.jpg)"></span> 
    <span class="ui-button-text">ui-button</span> 
</button> 
<script type="text/javascript"> 
    widget_j_idt23_j_idt27 = new PrimeFaces.widget.CommandButton('j_idt23:j_idt27', {text:false,icons:{primary:'backgroung-image:url(/images/title_logo.jpg)'}}); 
</script> 

Cảm ơn !!!

+0

nó có thật sự làm cho 'backgroung-image'? – BalusC

+0

@BalusC đây là nội dung được hiển thị: http://awesomescreenshot.com/0d9nm5ueb – KunalC

+0

Tại sao bạn chỉnh sửa câu hỏi để sao chép thuộc tính kiểu không chính xác này trong thuộc tính 'image'? – BalusC

Trả lời

33

Thuộc tính image phải tham chiếu CSS tên lớp, không phải là thuộc tính CSS thuần túy. Vì vậy, điều này sẽ làm:

<p:commandButton image="someCssClassName" /> 

những điều sau đây CSS của bạn:

.someCssClassName { 
    background-image: url(images/title_logo.jpg) 
} 

Xin lưu ý rằng tôi đã cố định các lỗi đánh máy lớn trong tên thuộc tính và cũng có thể loại bỏ các dấu gạch chéo hàng đầu từ URL hình ảnh, nó nếu không sẽ được giải quyết liên quan đến gốc của tên miền của trang web; ở trên mong đợi các title_logo.jpg được bên trong một thư mục /image mà lần lượt là trong thư mục nơi tệp CSS cư trú.

Tuy nhiên, đây là một trong ít vụng về, tôi nghĩ rằng:

<p:commandLink action="#{bean.submit}"> 
    <h:graphicImage name="images/title_logo.jpg" /> 
</p:commandLink> 
+0

@Olivier: vui lòng đọc http://stackoverflow.com/ question/11988415/what-is-the-jsf-resource-library-cho-và-how-should-it-be-được sử dụng cho một câu hỏi liên quan về cách sử dụng các tài nguyên JSF (đây là những gì thuộc tính 'name' đang trỏ đến). – BalusC

+0

hum ok. Trong trường hợp của tôi thuộc tính 'name' không hoạt động vì tôi không tạo thư viện liên quan đến. Xin lỗi vì bản sửa lỗi xấu này BalusC –

+1

@Olivier: Rõ ràng là bạn không đặt nó trong thư mục '/ resources'. Ví dụ cụ thể trong câu trả lời của tôi cho rằng tệp hình ảnh nằm trong '/ resources/images/title_logo.jpg'. – BalusC

0

Đặt này trên phong cách css của bạn:

.dolar-icon { 
    background-image: url("#{facesContext.externalContext.request.contextPath}/resources/imagenes/dolar.png") !important;} 

Bây giờ bạn có thể sử dụng biểu tượng "dolar-biểu tượng" mà bạn định nghĩa trong css của bạn.

<p:commandButton action="#{as.fe}" icon="dolar-icon"/> 
-1

Thậm chí dễ dàng hơn:

<p:commandButton icon="ui-icon-XXXXX"> 

các biểu tượng khác nhau bạn có thể chọn: https://api.jqueryui.com/theming/icons/http://www.primefaces.org/showcase/ui/misc/fa.xhtml

+0

Điều đó chỉ dễ dàng hơn nếu bạn muốn có một biểu tượng hiện có. Nếu bạn muốn hình ảnh của riêng bạn (như OP đã làm) điều này không làm việc cả. – Kukeltje

+0

Chỉ cần một cách dễ dàng để làm điều đó – Ralsho

Các vấn đề liên quan