JSF2.0 h:selectOneRadio作为h:datatable Multiple Select问题中的一列

时间:2013-02-08 12:19:03

标签: javascript ajax jsf-2

h:datatable 中使用时,

h:selectOneRadio 标记正确呈现单选按钮但是如果用户更改了选择,则前一个选择仍保留,即使选择改变了。 JS函数在第一列操作上正常工作 但是,如果我们在第二列中执行类似表头排序的Ajax操作,则会显示先前的选择(即)多个无线电选择。那么JavaScript基本上做的是隐藏所选的值还是我在这里遗漏了什么?代码如下。

 <h:dataTable value="#{bean.items}" var="item">
  <h:column>
      <h:selectOneRadio valueChangeListener="#{bean.setSelectedItem}"
        onclick="dataTableSelectOneRadio(this);">
        <f:selectItem itemValue="null" />
       </h:selectOneRadio>
   </h:column>

 <h:column>
      // Consider this column has some data and sorting option by header 
   </h:column>
</h:dataTable>

Javascript功能:

function dataTableSelectOneRadio(radio) {
    var radioId = radio.name.substring(radio.name.lastIndexOf(':'));

    for (var i = 0; i < radio.form.elements.length; i++) {
        var element = radio.form.elements[i];

        if (element.name.substring(element.name.lastIndexOf(':')) == radioId) {
            element.checked = false;
        }
    }

    radio.checked = true;
}

所以问题实际上是我们在第二列上做了一些基于ajax的操作。如何克服这个?

0 个答案:

没有答案