2013-07-12 7 views
6

primefaces p:commandButtonに自分のアイコンを使用することはできません。私のコードは次のとおりです。自分のprimefaces p:commanButtonアイコン

<p:commandButton value="Cancel" action="#{userBb.cancel()}" 
     icon="ui-icon-myCancel" /> 

CSSは次のとおりです。フォルダの

.ui-icon-myCancel{ 
    background-image: url(images/cancel_16.png) !important; 
} 

構造が普通である:enter image description here

を私がしようとすると:

/resources/images/cancel_16.png

私が得る結果

.ui-state-default .ui-icon .ui-icon-myCancel{ 
    background-image: url(images/cancel_16.png) !important; 
} 

私が取得:enter image description here

私は放火犯のレポートを見て、そこにあるセクションスパン

<span class="ui-button-icon-left ui-icon ui-c ui-icon-myCancel"></span> 

があります:

.ui-state-default .ui-icon { 
    background-image: url("/WarPort08_02b/javax.faces.resource/images/ui-icons_38667f_256x240.png.xhtml?ln=primefaces-aristo"); 

私はこのexplanationを見て、他の人が、何の答えを見つけていません。

私はp:commandLinkをh:graphicImageアイコンで表示しようとしていますが、画像はボタン/リンクとして表示されます。

+0

あなたが提供したリンクから3番目の回答はどうなりますか?私はあなたにもコメントを残しました。 – Andy

+0

私にとってはうまくいかない:私が試してみたら:アイコンとタイトルのコマンドボタンが必要です。 – Zbyszek

+0

イメージのサイズは? – Andy

答えて

13

Zbyszek、これらは以下の出力を得るために取った手順です。あなたのコメントに基づいて、私はそれがあなたの後にあると仮定しています。

commandButton with value and icon

:マイピクチャの名前はtest.jpgだったし、次のディレクトリ resources/images/test.jpgにありました。 また、提供したスタイルルールはresources/css/style.cssに記載されています。私のイメージのサイズは25 x 17でした(しかし、私はそれが重要だとは思わない、あなたはアイコンが小さすぎると思っている場合に備えてこれを言っているだけです)。 <h:head>

あなたが持っていることを確認します(たぶん、あなたはこれを追加するのを忘れやスタイルが適用されていませんでした?)

<h:outputStylesheet name="css/style.css" /> 

マイ< p:commandButton>(必要に応じて変更は、それだけで迅速なモックアップでした)

<p:commandButton value="Cancel" icon="ui-icon-myCancel" /> 

とあなたのルール

.ui-icon-myCancel{ 
    background-image: url("#{resource['images/test.jpg']}") !important; 
} 
+1

これは正解です。 –

+0

正解ありがとう。私の欠点はイメージに間違った道を与えることだった。私はこれを次のようにコード化しました:url(images/cancel_16.png)。しかし、私がJSFリソース識別子をあなたがしたやり方で使うと、url( "#{resource ['images/cancel_16.png']}")suddnely :)アイコンが現れました。また、私はコード:url(../ resources/images/cancel_16.png)またはurl(/MyAppName/resources/images/cancel_16.png)と表示されます。だから、イメージへの適切な参照に関するすべてでした、私はリソース識別子(あなたが表示)を使用することが最良の方法だと思います。 – Zbyszek

+0

@Zbyszekはい、それは 'h:outputStyleSheet'か、画像を見つけられなかったかのいずれかでした。私はその問題にしばらく後悔しました。あなたは私に間違った道を与えなかった、少なくとも私は考えない。私はちょうどあなたが私が何をしていたかを見ることができるようにメモを追加しました。それがうまくいってうれしい。どういたしまして。 – Andy

1

このシンプルなURL()バージョンもPrimefaces 6.1上で動作します:
.ui-icon-myCancel{background-image: url(img/cancel.gif)!important;}
(あなたは、Web/IMGフォルダにアイコンファイルを入れて、cssファイルは、Webフォルダにある場合)

しかし、それラウンドコーナーため、アイコンの私はこのソリューションを使用します:

.ui-icon-myCancel{background-image: url(img/cancel.gif)!important; 
        border-radius: 0px!important;} 
関連する問題