同一DataTable的选择模式为单选和多选

发布于 2024-11-07 14:26:36 字数 697 浏览 2 评论 0原文

下面的代码是数据表,根据问题类型(问题对象的属性),用户可以选择一个选项或多个选项。

<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'}" />

我的问题是如何在我的indexbean 中声明selectedOpt (selection="#{indexBean.currentQuestion.selectedOpt}") 以便它能够满足我的要求。

The below code is datatable and based on Qustion type (property of Question object) user can either select one option or multiple options.

<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'}" />

My problem is how to declare selectedOpt (selection="#{indexBean.currentQuestion.selectedOpt}") in my indexbean so that it can fit for my requirement.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帅哥哥的热头脑 2024-11-14 14:26:36

我不确定您想要通过设置一列单选模式和另一列多选模式来完成什么任务。

dataTable 有属性 SelectionMode,column 标签没有这样的属性(至少从 2.2.1 开始没有)。

有关如何使用 dataTable 的示例,请参阅 Primefaces Showcase,http://www.primefaces .org/showcase/ui/datatableRowSelectionSingle.jsf

I am not sure what you are trying to accomplish by making one column Single Selection Mode and the other Multiple Selection Mode.

The dataTable has the property selectionMode, column tag does not have such a property (at least not as of 2.2.1).

For an example of how to use the dataTable see the Primefaces Showcase, http://www.primefaces.org/showcase/ui/datatableRowSelectionSingle.jsf

初见 2024-11-14 14:26:36

在这个例子中使用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。

Use columnGroup with this example:

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

This works :D.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文