JSF DataTable使用单选按钮选择一行

时间:2011-02-02 06:30:35

标签: jsf radio-button

我正在使用JSF 1.1并且我有一个ice:数据表,其中的行从backing bean获取。 要选择要编辑的行,我有一个该行的单选按钮。 当我使用单选按钮选择行时,我收到以下错误。

radio.name is undefined

在我的页面中,我调用javascript如下

<h:selectOneRadio styleClass="none" valueChangeListener="#{bean.setSelectedItem}"
                onclick="dataTableSelectOneRadio(this);">
                <f:selectItem itemValue="null" />
            </h:selectOneRadio>

我的任何javascript函数

function dataTableSelectOneRadio(radio) {
    var id = radio.name.substring(radio.name.lastIndexOf(':'));
    var el = radio.form.elements;
    for (var i = 0; i < el.length; i++) {
        if (el[i].name.substring(el[i].name.lastIndexOf(':')) == id) {
            el[i].checked = false;
        }
    }
    radio.checked = true;
}

如何解决此错误?

由于

1 个答案:

答案 0 :(得分:1)

显然,IceFaces不会为单选按钮生成name属性,也不会在生成的onclick元素上放置<input type="radio">。请尝试使用id。用radio.name替换JavaScript代码中的radio.id。如果徒劳无功,则需要检查生成的HTML输出(在浏览器中打开页面,右键单击查看源)并相应地更改JS代码。