o problema é que ao selecionar, consigo selecionar mais de um, não fazendo sentido a questão do radio…
Vejam se isso é o bastante.
A ideia é que no dataTable possa haver um radiobutton, onde através dele pudesse submeter um receptor a um atendimento:
[code]<rich:popupPanel id=“modalPanelReceptor” modal=“false” width=“600”
moveable=“false”>
<f:facet name="header">
<h:outputText value="Defina o Receptor"></h:outputText>
</f:facet>
<f:facet name="controls">
<h:outputLink value="#" style="text-decoration:none;"
onclick="#{rich:component('modalPanelReceptor')}.hide(); return false;">X</h:outputLink>
</f:facet>
<rich:dataTable value="#{atendimentoBean.listaReceptores}"
sortMode="single" var="_receptor" style="width: 100%;"
binding="#{atendimentoBean.uiDataTable}"
noDataLabel="Não existem receptores cadastrados." rowKeyVar="index">
<rich:column width="40%">
<f:facet name="header">
<h:outputText value="Selecione" />
</f:facet>
<h:se
><h:selectOneRadio onclick="dataTableSelectOneRadio(this);"
valueChangeListener="#{atendimentoBean.setReceptorSelecionado}"
value="#{atendimentoBean.atendimentoEdicao.receptor}"
converter="receptorConverter">
<a4j:ajax></a4j:ajax>
<f:ajax execute="@this" render="@form"></f:ajax>
<f:selectItem itemValue="#{_receptor}">
</f:selectItem>
</h:selectOneRadio>
</rich:column>
<rich:column width="40%">
<f:facet name="header">
<h:outputText value="Nome do receptor" />
</f:facet>
<h:outputText value="#{_receptor.nomeReceptor}"></h:outputText>
</rich:column>
<rich:column width="25%">
<f:facet name="header">
<h:outputText value="Tipo sanguíneo do receptor" />
</f:facet>
<h:outputText value="#{_receptor.tipoSanguineo}"></h:outputText>
</rich:column>
<rich:column width="25%">
<f:facet name="header">
<h:outputText value="Tipo Hemoderivado do receptor" />
</f:facet>
<h:outputText value="#{_receptor.tipoHemo}"></h:outputText>
</rich:column>
</rich:dataTable>
<a4j:commandButton value="OK"
onclick="#{rich:component('modalPanelReceptor')}.hide(); return
false;" />
</rich:popupPanel>[/code]
e através disto pudesse obtê-lo:
public void setReceptorSelecionado(ValueChangeEvent event) {
receptorSelecionado = (Receptor) uiDataTable.getRowData();
System.out.println(receptorSelecionado);
listaReceptores = new ArrayList<Receptor>();
listaReceptores.add(receptorSelecionado);
}
é isto que ocorre - selecionar mais de um, onde gostaria que selecionasse apenas um e não mais de um como acontece.
para tentar resolver o problema tentei isso:
<h:outputScript name="modal.js" library="js" target="head" />
[code]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;
}[/code]
mas sem sucesso.
Podem ajudar?