javascript - 动态改变h :dataTable value in JSF

标签 javascript jsf

如何动态更改 h:dataTable 的值?我有以下代码(只是一个片段):

        <h:dataTable value="#{DataProvider.mapValues}" var="o" border="1">
                <h:column>
                    <h:outputText value="#{o.key}"></h:outputText>
                </h:column>
                <h:column>
                    <h:outputText value="#{o.value}"></h:outputText>
                </h:column>
        </h:dataTable>

            <h:selectOneMenu>
                <f:selectItem itemLabel="Choose Language.."></f:selectItem>
                <f:selectItem itemLabel="DE"></f:selectItem>
                <f:selectItem itemLabel="CZ"></f:selectItem>
                <f:selectItem itemLabel="EN"></f:selectItem>
                <f:selectItem itemLabel="FR"></f:selectItem>
                <f:selectItem itemLabel="ES"></f:selectItem>
                <f:selectItem itemLabel="PT"></f:selectItem>
            </h:selectOneMenu>

所以,基本上,当我从 SelectOneMenu 中选择一种语言时,数据表应该使用不同的值(例如“#{DataProvider.mapValues(en)”)。需要明确的是:每次我从组合框中选择一个值时,数据表都应该使用其他值重新加载。

我想这可以与 JavaScript 一起使用,但我不知道它到底是如何完成的。 任何帮助,将不胜感激。谢谢!

编辑:我必须使用 JSF1.2,因此我无法使用任何内置 AJAX 功能。

最佳答案

使DataProvider.getMapValues像这样:

private String selectedLanguage; // + getter and setter    

private Map getMapForLanguage(String language)
{ ... }

public Map getMapValues(){
    return getMapForLanguage(selectedLanguage);
}

selectedLanguage 绑定(bind)到 h:selectOneMenu 选择的值,并在选择时对 h:dataTable 进行 ajax 更新,如下所示:

<h:dataTable id="myTable" ... >
...
<h:selectOneMenu value="#{DataProvider.selectedLanguage}">
    ...
    <f:ajax render="myTable"/>
</h:selectOneMenu>

关于javascript - 动态改变h :dataTable value in JSF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694254/

相关文章:

javascript - 基于 JSF 的 Web 架构中是否有 JQuery 的空间?

javascript - 找到 3 个点的所有共线

javascript - 具有弹跳效果的 slideToggle 不起作用

ajax - 错误页面上的错误报告表

jsf - 更新 View 中的项目

jsf - SelectCheckboxMenu - 禁用 "all-selection"

javascript - 在 JavaScript 中,如果我用括号调用函数会有什么不同吗?

javascript - HighCharts 柱形图填充了函数中的系列数据

javascript - 使新关键字可选

java - Ant Javac 编译输出