Bom dia a todos, estou com um problema na datatable que é o seguinte:
Tenho a tabela que mostra os dados e quando eu clico em uma linha abre o p:dialog, porém quando abre o dialog sempre vem com as informações do último registro, mesmo que eu clique no primeiro vem no útilmo. Segue o código
página web:
<p:dataTable id="participantes" var="par" value="#{participantes.listAll}" paginator="true" rows="5"
selection="#{participantes.part}" selectionMode="single" emptyMessage="Não tem participantes cadastrado!"
rowKey="#{participantes.id_participante}">
<p:ajax event="rowSelect" update=":pageone:display, :pageone:mensa" oncomplete="UsuarioPOP.show()"
listener="#{participantes.onRowSelect}" />
<p:ajax event="rowUnselect" listener="#{participantes.onRowUnselect}" update=":pageone:mensa"/>
<f:facet name="header">
Participantes
</f:facet>
<p:column id="idParticipante" headerText="ID">
#{par.id_participante}
</p:column>
<p:column id="nomeParticipante" headerText="Nome Completo">
#{par.fullName}
</p:column>
<p:column id="nomeInstituicao" headerText="Institução">
#{par.instituicao}
</p:column>
<p:column id="dataInscricao" headerText="Data de Inscrição">
</p:column>
</p:dataTable>
<p:dialog id="dialog" header="Informação do Participante" widgetVar="UsuarioPOP"
resizable="false"width="490" showEffect="clip" hideEffect="fold">
<h:panelGrid id="display" columns="2" cellpadding="4">
<h:outputLabel for="IDP" value="ID *" />
<p:inputText id="IDP" value="#{participantes.part.id_participante}"/>
<h:outputLabel for="firstname" value="Nome Completo: *" />
<p:inputText id="firstname" value="#{participantes.part.fullName}"
label="Nome Completo" />
<h:outputLabel for="instituicao" value="Instituição de Ensino: *" />
<p:inputText id="instituicao" value="#{participantes.part.instituicao}" required="true"
label="Instituição de Ensino"/>
<h:outputLabel for="email" value="Email: *" />
<p:inputText id="email" value="#{participantes.part.email}" required="true"
label="Email"/>
<h:outputLabel for="phone" value="Telefone: *" />
<p:inputMask id="phone" value="#{participantes.part.telefone}" required="true"
label="Telefone"mask="(99)9999-9999"/>
<h:outputLabel for="cargo" value="Cargo em TI: *" />
<p:inputText id="cargo" value="#{participantes.part.cargo}" required="true"
label="Cargo que atualmente exerce"/>
<h:outputLabel for="aljug" value="Participa do Grupo Aljug: *" />
<p:selectOneMenu id="aljug" value="#{participantes.part.aljug}">
<f:selectItem itemLabel="- Selecione - "/>
<f:selectItem itemLabel="Sim" itemValue="Sim"/>
<f:selectItem itemLabel="Não" itemValue="Não"/>
</p:selectOneMenu>
</h:panelGrid>
</p:dialog>
Bean:
private Participante part;
private List<Participante> list;
public List<Participante> getListAll() throws SQLException {
Statement statement = null;
list = new ArrayList<Participante>();
Conn = FactoryConnection.getConnection(User, Pass);
String sql = "SELECT * FROM participantes";
try {
statement = Conn.createStatement();
System.out.println(sql);
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
part = new Participante();
part.setId_participante(rs.getInt("idparticipante"));
part.setFullName(rs.getString("fullname"));
part.setInstituicao(rs.getString("instituicao"));
part.setEmail(rs.getString("email"));
part.setTelefone(rs.getString("telefone"));
part.setCargo(rs.getString("cargo"));
part.setAljug(rs.getString("aljuggrupo"));
list.add(part);
}
} catch (SQLException e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Não pode buscar dado!", "Erro inesperado, motivo: " + e.getMessage()));
System.out.println(e.getMessage());
Conn.close();
}
return list;
}