2013-07-01 61 views
1

我在Primefaces 3.5中使用JSF。我使用不帶columns屬性的p:panelGrid,而是使用p:rowp:column明確創建行和列,如展示(http://www.primefaces.org/showcase/ui/panelGrid.jsf)中所示。將樣式添加到特定的p:行

現在我需要在一些CSS類的幫助下以不同的樣式設置一行。但是要麼我錯過了它,要麼沒有辦法給p:row添加一個類?我甚至可以設置屬性styleClass,但它在渲染輸出中將被忽略...

有沒有辦法以某種方式區分panelGrid中的某一行?

+0

只是想知道你是否可以濫用* primefaces通過屬性*像這樣' Daniel

+0

我們仍然在使用JSF 2.1(JEE 6),所以我們不能使用這個想法,儘管我會一直關注。而對於這一行,我甚至沒有一個唯一的ID。即使我有一個,我不知道它,所以我不能附上一個樣式... –

+0

我編輯我的答案,如果你的客戶不會使用IE瀏覽器,你可以使用它我想 – NikolaB

回答

0

嘗試使用的CSS外卡(以數學所有td與您的ID結束)

這樣的(選擇其ID與myRowId結束所有TD)

tr[id*='myRowId'] { 
    color:red 
} 

這裏一個jsfiddle


以前的答案...

既然你不能在你p:row可以嘗試以下

分配一個p:row一個id,這樣使用的styleClass:<p:row id="myRowId "

並以下列方式應用的樣式(在你的CSS文件)

#myFormId\3A SomeNamingContainer\3A myRowId { 
    background-color: red; 
} 
爲了更換​​和 SomeNamingContainer與你的真實IDS你的頁面的

或加入源...

而且閱讀:How to use JSF generated HTML element ID in CSS selectors?

+0

這將允許我做一行,謝謝。但是,如果我在幾個不同的'p:panelGrid's中有幾行或相同的邏輯,我會有數十個CSS規則...... :-( –

+0

@DaDaDom,更新了我的答案...... – Daniel

0

如果您在其他行中需要相同的樣式,也許可以使用p:column的列樣式(根據您對Daniel的迴應)。事情是這樣的:

.stylePerColumn { 
    background-color: #F22626; 
    color: black; 
    border-style: none !important; 
} 

和int的XHTML文件<p:column styleClass="stylePerColumn ">...</p:column>(所需的每一列)。