2011-05-16 51 views
0

下面的代碼是可數據並基於Qustion類型(Question對象的屬性)用戶可以選擇一個選項或多個選項。選擇模式單個和多個相同DataTable

<p:dataTable id="optTable" value="#{indexBean.currentQuestion.options}" var="opt" 
             selection="#{indexBean.currentQuestion.selectedOpt}" > 

           <p:column selectionMode="single" rendered="#{indexBean.currentQuestion.question.selectionMode eq 'single'}" /> 
           <p:column selectionMode="multiple" rendered="#{indexBean.currentQuestion.question.selectionMode eq 'multiple'}" /> 

我的問題是如何聲明selectedOpt我indexbean(selection="#{indexBean.currentQuestion.selectedOpt}")使之能適合我的要求。

回答

1

我不知道你正在試圖通過使一列單選模式和其他多選模式來完成。

dataTable具有屬性selectionMode,列標籤沒有這樣的屬性(至少不是2.2.1)。

有關如何使用數據表看Primefaces展示一個例子,http://www.primefaces.org/showcase/ui/datatableRowSelectionSingle.jsf

+0

其實我正在開發一種測驗類應用程序。用戶可以選擇一個選項或多個選項取決於問題類型。我正在使用數據表來顯示選項列表,如我的問題所示。我如何實現這個 – Maddy 2011-05-17 03:31:57

+0

根據上面鏈接的展示櫃,使數據表選擇模式爲多個。首先嚐試在應用程序中重新創建展示的簡單場景,然後在獲得它的功能之後再展開該功能。 – 2011-05-17 11:13:28

1

使用columnGroup這個例子:

<p:dataTable resizableColumns="false" id="multiTasks" var="task" rowStyleClass="#{task.id le 10 ? 'green' : (task.id le 20 ? 'yellow' : 'red')}" value="#{taskController.subjects}" rowKey="#{task.name}"> 
          <p:columnGroup type="header"> 
           <p:row> 
            <p:column headerText="Operations" /> 
            <p:column headerText="Name fragment" /> 
            <p:column headerText="View fragment" /> 
            <p:column headerText="Consistency" /> 
           </p:row> 
          </p:columnGroup> 
          <p:column rendered="#{task.id le 10}" selectionMode="multiple" style="width:2%; text-align: center;" styleClass="text-right" /> 
          <p:column rendered="#{task.id gt 10 and task.id le 20 }" style="width:2%; text-align: center;" > 
            <a href="activityForm.html">Recover this fragment</a> 
          </p:column> 
          <p:column rendered="#{task.id gt 20 }" style="width:2%; text-align: center;" > 
           --- 
          </p:column> 
          <p:column id="nameTask" sortBy="#{task.name}" filterBy="#{task.name}" > 
           #{task.name}" 
          </p:column> 
          <p:column id="viewFragment" style="text-align: center;" sortBy="#{task.name}" filterBy="#{task.name}" > 
           <p:button id="btnView" icon="ui-icon-search"></p:button> 
          </p:column> 
          <p:column id="percentageConsistency" sortBy="#{task.name}" filterBy="#{task.name}" > 
           #{(task.id le 10 ? '75%':(task.id le 20 ? '50%' : '25%'))}" 
          </p:column> 

         </p:dataTable> 

這工作:d。