【问题标题】:How to change the columns of a datatable according to select menu?如何根据选择菜单更改数据表的列?
【发布时间】:2014-08-19 10:34:18
【问题描述】:

我正在使用 JSF 2 和 PrimeFaces 5 我有一个数据表,其单元格需要根据下拉菜单中的选择进行更新。具体来说,我想根据我的选择更改列表(dataTable 值)(基本上这意味着对于每个选项 dataTable 将显示不同的记录)?

可以吗?

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    是的,只需相应地更改模型即可。

    例如这个:

    <p:selectOneMenu value="#{bean.selectedItem}">
        <f:selectItems value="#{bean.availableItems}" />
        <p:ajax listener="#{bean.changeDataModel}" update="table" />
    </p:selectOneMenu>
    
    <p:dataTable id="table" value="#{bean.dataModel}">
        ...
    </p:dataTable>
    

    @ViewScoped bean 中:

    public void changeDataModel() {
        dataModel = someService.load(selectedItem);
    }
    

    【讨论】:

    • 非常感谢@BalusC 我已经完成了它的工作......但我仍然有一个问题:当我从列表中选择一个值时,我有来自项目的表格,它的大小正是每个类别中的项目,但这张桌子是免费的..我没有价值..我不知道为什么 O.o
    • 作为回答,bean 必须是 @ViewScoped,而不是 @RequestScoped。如果您仍然有问题,只需按右上角的[] 按钮。这个问题与所提出的问题无关。而且由于您是新来的,请不要忘记在答案最有助于解决和理解具体问题时将其标记为已接受。另见How does accepting an answer work?
    • 我把它作为@SessionScoped ..我改变它但我有这个错误:\部署失败=部署期间发生错误:加载应用程序时出现异常:CDI定义失败:WELD-000075正常范围托管 bean 实现类有一个公共字段:[EnhancedAnnotatedFieldImpl] public Bean.catBean.listCatégorie。有关详细信息,请参阅 server.log。
    • 我现在可以很好地解决我的问题了..谢谢 :)
    • 不客气。详细信息就在server.log 中,与异常所指示的完全相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多