2011-11-03 3 views
13

Sto tentando di visualizzare un pulsante con l'immagine solo sulla mia pagina ma tutto quello che vedo è il pulsante con ^. Di seguito è riportato il codice per il mio pulsante:Visualizzazione del pulsante di comando con solo immagine

<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> 

L'immagine esiste nella cartella delle immagini. Il pulsante viene visualizzato come segue nella pagina:

<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> 

Grazie !!!

+0

l'ha fatto davvero render 'backgroung-image'? – BalusC

+0

@BalusC questo è ciò che ha reso: http://awesomescreenshot.com/0d9nm5ueb – KunalC

+0

Perché hai modificato la domanda per copiare questa proprietà di stile errata nell'attributo 'immagine'? – BalusC

risposta

33

L'attributo image deve fare riferimento a un nome di classe CSS, non a una semplice proprietà CSS. Quindi, questo dovrebbe fare:

<p:commandButton image="someCssClassName" /> 

con il seguente nel CSS:

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

Si prega di notare che ho fissato il maggiore errore di battitura nel nome della proprietà e anche rimosso la barra che conduce dal URL dell'immagine, sarebbe altrimenti risolto rispetto alla radice del dominio del sito; Quanto sopra si aspetta che lo title_logo.jpg si trovi all'interno di una cartella /image che a sua volta si trova nella cartella in cui si trova il file CSS.

Tuttavia, questo è meno goffo, penso:

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

@Olivier: leggere http://stackoverflow.com/ domande/11988415/what-is-the-jsf-resource-library-per-e-come-dovrebbe-essere-usato per una domanda relativa su come usare le risorse JSF (questo è ciò che l'attributo 'name' sta puntando a). – BalusC

+0

ronzio ok. Nel mio caso l'attributo 'name' non ha funzionato perché non ho creato la libreria associata a. Scusa per questa cattiva modifica BalusC –

+1

@Olivier: Apparentemente non l'hai messo nella cartella '/ resources'. L'esempio particolare nella mia risposta si aspetta che il file immagine sia in '/ resources/images/title_logo.jpg'. – BalusC

0

messo sul vostro stile css:

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

Ora è possibile utilizzare il "dolar-icona" icona che è stata definita nel tuo css.

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