2010-04-23 65 views
2

我正在嘗試創建h:selectOneRadio的grooup,但ui:repeat會爲每行提供不同的id。這是我的代碼: -如何在JSF中創建一組h:selectOneRadio?

       <ui:repeat id="themes" value="#{RegisterBean.objBlogTemplateList}" var="item"> 

            <p:graphicImage alt="#{item.templatePicName}" style="border: solid 5px white;width: 200px;height: 200px;" value="#{app:getCommonImagePath(item.templatePicName)}"/> 

            <h:selectOneRadio rendered="false" value="#{RegisterBean.blogTemplateId}" layout="lineDirection" id = "rdTemplateId"> 
             <f:selectItem itemLabel="#{item.templateName}" itemValue="#{item.templateId}"/> 
            </h:selectOneRadio> 

           </ui:repeat> 

其實我想創建一個有不同selectItems的應該是從我的表在數據庫中的行一個單選按鈕。我該怎麼做呢?

+0

功能要求尚不清楚。 「具有不同項目的單選按鈕」?這不可能。每個按鈕只能有一個項目。請詳細說明。他們究竟應該如何分組?難道你不是說你想要一組**按鈕*每行?換句話說:每一行都有自己的一組相關按鈕? – BalusC 2010-04-23 11:22:34

回答

1

您將無法使用JSF組件外的開箱做到這一點。然而,實現一個自定義渲染器來完成你所追求的內容相當簡單。我建議將圖像URL轉儲到SelectItem描述字段中,因爲這幾乎從不使用。然後在渲染器中將這個值放入一個IMG標籤中。

我寫有關selectboxes here定製呈現一點 - 應該是你相同的過程。

0

<t:selectOneRadio>支持layout="spread"以便您可以從單個組中分散單個選項按鈕。

+0

這種方式在數據表內的循環中不會變得容易。 – BalusC 2010-04-23 11:20:05

+0

也許我誤解了這個問題。起初,我想到了f:selectItems,但是之後在每一行都有一個表格和一個收音機。我有完全相同的場景和t:selectOneRadio很容易。讓我們看看他究竟想要什麼:) – Bozho 2010-04-23 11:37:28

+0

嗨Bozho,你可以想象我的要求是「h:selectOneRadio裏面datatable」的東西。我讀了BalusC的文章並實施了它。它正在工作,但做起來並不容易。我的要求是: - 說想我在表作爲「蘋果,芒果,香蕉」有三排,我有自己的三個圖像爲「apple.jpg ,, mango.jpg,了banana.jpg」。我希望界面如下所示: - 蘋果照片diplayed,然後蘋果選項,香蕉照片顯示,然後顯示香蕉照片,然後顯示芒果照片和芒果選項。「。這些行爲作爲一個組,意味着我只能選擇其中之一。 – TCM 2010-04-25 04:04:57

1

它更多的聲音一樣,你最好<f:selectItems>

<h:dataTable value="#{bean.items}" var="#{item}"> 
    <h:column> 
     <h:selectOneRadio value="#{item.selectedTemplate}"> 
      <f:selectItems value="#{bean.availableTemplates}" /> 
     </h:selectOneRadio> 
    </h:column> 
    ... 

您可以用SelectItem[]List<SelectItem>Map<Object, String>餵它。

+0

嗨BalusC,如果我想顯示與<沿着圖形圖像的東西。 H:selectOneRadio>我試圖把H:?graphicImage的˚F內:selectItems標籤,但它沒有工作 – TCM 2010-04-25 04:06:40

+0

無論是搶CSS/JS,或使用其他組件(RichFaces的有一個地方,這是可能的,如果我沒有記錯),或重寫渲染器。 – BalusC 2010-04-27 11:12:27

相關問題