0
하나의 dataTable에 필터를 만들려고합니다. 해당 필터를 datatable에 포함 된 모든 키워드와 함께 사용할 수 있습니다.primefaces 데이터 테이블 필터링?
다음 예제는 다음과 같습니다. http://www.primefaces.org/showcase/ui/data/datatable/filter.xhtml 하지만이 작업을 수행 할 수 없습니다.
문제는 "모든 키워드를 찾을 수 없습니다"라는 메시지를 표시하는 모든 키워드를 입력 할 때입니다. 키워드를 삭제하면 모든 결과가 반환되지 않고 "키워드를 찾을 수 없습니다"라는 메시지가 유지됩니다.
이 문제를 어떻게 해결할 수 있습니까?
여기 내가 어떻게 노력하고 있는지.
XHTML
<p:dataTable id="tabelaAlunos" widgetVar="tableAlunos"
value="#{alunoMB.alunos}" var="x"
emptyMessage="No keyword found"
selectionMode="single"
selection="#{matriculaMB.aluno}"
rowKey="#{x.id}"
filteredValue="#{alunoMB.alunos}"
>
<f:facet name="header">
<p:outputPanel>
<h:outputText value="Filtrar: " />
<p:inputText id="globalFilter"
onkeyup="PF('tableAlunos').filter()"
style="width:150px" placeholder="Filtro"/>
</p:outputPanel>
</f:facet>
<p:column headerText="Nome">
<h:outputText value="#{x.nome}"/>
</p:column>
<p:column headerText="Sobrenome">
<h:outputText value="#{x.sobreNome}"/>
</p:column>
<p:column headerText="Endereço">
<h:outputText value="#{x.endereco.endereco}"/>
</p:column>
<p:column headerText="Número">
<h:outputText value="#{x.endereco.numero}"/>
</p:column>
<p:column headerText="Cidade">
<h:outputText value="#{x.endereco.cidade}"/>
</p:column>
<p:column headerText="Bairro">
<h:outputText value="#{x.endereco.bairro}"/>
</p:column>
<p:column headerText="Unidade escolar">
<h:outputText value="#{x.unidadeEscolar.nome}"/>
</p:column>
</p:dataTable>
관리 빈 Aluno
@ManagedBean
@ViewScoped
public class AlunoMB implements Serializable{
private static final long serialVersionUID = 1L;
private Aluno bean;
private GenericDAO<Aluno> dao;
private List<Aluno> alunos = null;
private String[] sexo = {"M", "F"};
private String telefone = "";
/** persiste o objeto */
public void insert(Aluno a){
dao = new GenericDAO<Aluno>(Aluno.class);
dao.insert(a);
alunos.add(a);
bean = new Aluno();
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso" ,"Cadastro realizado com sucesso!"));
}
/** altera o objeto */
public void update(Aluno a){
dao = new GenericDAO<Aluno>(Aluno.class);
dao.update(a);
}
/** prepara para inserir o objeto */
public void prepareCreate(){
bean = new Aluno();
}
/** retorna o objeto */
public Aluno getBean() {
return bean;
}
/** define o objeto */
public void setBean(Aluno bean) {
this.bean = bean;
}
/** retorna uma lista do objeto */
public List<Aluno> getAlunos() {
if(alunos == null){
dao = new GenericDAO<Aluno>(Aluno.class);
alunos = dao.findAll();
}
return alunos;
}
/** seta uma lista do objeto */
public void setAlunos(List<Aluno> alunos) {
this.alunos = alunos;
}
관리 빈 영사 증명서
@ManagedBean
@ViewScoped
public class MatriculaMB implements Serializable{
private static final long serialVersionUID = 1L;
private Matricula bean = new Matricula();
private GenericDAO<Matricula> dao;
private List<Matricula> matriculas = null;
private Turma turma;
private Aluno aluno = null;
/** persiste um novo objeto */
public void insert(Matricula m){
dao = new GenericDAO<Matricula>(Matricula.class);
dao.insert(m);
matriculas.add(m);
bean = new Matricula();
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso" ,"Cadastro realizado com sucesso!"));
}
/** altera o objeto existente */
public void update(Matricula m){
dao = new GenericDAO<Matricula>(Matricula.class);
dao.update(m);
}
/** prepara para inserir uma nova matricula */
public void prepareCreate(){
bean = new Matricula();
}
/** retorna o objeto */
public Matricula getBean() {
return bean;
}
/** define o objeto */
public void setBean(Matricula bean) {
this.bean = bean;
}
/** retorna uma lista do objeto */
public List<Matricula> getMatriculas() {
dao = new GenericDAO<Matricula>(Matricula.class);
if(matriculas == null){
matriculas = dao.findAll();
}
return matriculas;
}
public Turma getTurma() {
return turma;
}
public void setTurma(Turma turma) {
this.turma = turma;
}
/** adiciona turma ao aluno */
public void addTurmaAluno(){
if(!bean.getAluno().getTurmas().contains(turma)){
bean.getAluno().addTurmas(this.turma);
}
}
public Aluno getAluno() {
return aluno;
}
public void setAluno(Aluno aluno) {
this.aluno = aluno;
bean.setAluno(this.aluno);
}
가 보이는 ... – Yamada
감사합니다 친구는 지금 작동합니다! – FernandoPaiva