简体   繁体   English

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

[英]JSF DataTable Select One Row Using Radio Button

I am using JSF 1.1 and I have a ice:datatable with rows getting fetched from backing bean. 我正在使用JSF 1.1,并且有一个ice:datatable,其中的行是从backing bean中获取的。 To select the row for editing I have a radio button for that row. 要选择要编辑的行,我对该行有一个单选按钮。 When I select the row using the radio button I am getting the following error. 使用单选按钮选择行时,出现以下错误。

radio.name is undefined

In my page I am calling the javascript as follows 在我的页面中,我按如下方式调用javascript

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

Any my javascript function 任何我的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;
}

How can I resolve this error? 如何解决此错误?

Thanks 谢谢

Apparently IceFaces doesn't generate name attribute for the radio button or doesn't put onclick on the generated <input type="radio"> element. 显然ICEfaces的不生成name单选按钮属性或不投入onclick所生成的<input type="radio">元素。 Try using id instead. 尝试改用id Replace radio.name in JavaScript code by radio.id . radio.name替换JavaScript代码中的radio.id If in vain, you need to check the generated HTML output (open page in browser, rightclick and View Source ) and alter the JS code accordingly. 如果徒劳,则需要检查生成的HTML输出(在浏览器中打开页面,右键单击并查看Source ),并相应地更改JS代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM