Ich weiß, dass diese Frage dupliziert werden kann, aber ich kann wirklich nicht die Lösung für mein Problem finden; mein Problem, dass Datatable Funktionalität wie Sortieren und Filtern funktioniert nicht, wenn ich auf eine Zeile klicken, um die Details anzuzeigen, nachdem ich den Dialog zu schließen alles "Sortieren, Filtern" funktioniert normal und wie erwartet.Primes Dataset Sortieren und Filtern funktioniert nicht bis Zeile Wählen
hier ist mein Code: Bean.java
@ViewScoped
public class HomeBean implements Serializable {
private List<Ticket> filteredTickets;
private List<Ticket> tickets;
private Ticket selectedTicket;
private Ticket[] selectedTickets;
public HomeBean() {
super();
}
@PostConstruct
public void init() {
getData();
}
private void getData() {
TicketFacade service;
service = TicketFacade.getInstance();
try {
tickets = service.selectTickets();
} catch (Exception e) {
logger.error(Utilities.printStackTrace(e));
}
}
// setter & getters
@PreDestroy
public void finalize() {
logger.debug("@PreDestroy");
}
}
Und hier ist die xhtml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<f:view contentType="text/html">
<h:head>
<f:facet name="first">
<meta content='text/html; charset=UTF-8' http-equiv="Content-Type" />
<title>Home Page</title>
</f:facet>
<script type="text/javascript">
window.history.forward();
function noBack() {
window.history.forward();
}
</script>
</h:head>
<h:body id="body-view" onload="noBack();"
onpageshow="if (event.persisted) noBack();" onunload="">
<f:view locale="#{userManager.locale}">
<h:form id="Ticket">
<p:dataTable var="ticket" value="#{homeBean.tickets}"
rowKey="#{ticket.id}" paginator="true" rows="15"
selection="#{homeBean.selectedTicket}" selectionMode="single"
filteredValue="#{homeBean.filteredTickets}" id="ticketsTable"
emptyMessage="#{lbl.noTicketsFound}"
style="margin-bottom:10px;margin-top:10px;">
<p:ajax event="rowSelect" update=":Ticket:display"
oncomplete="ticketDialog.show()" />
<f:facet name="header">#{lbl.listOfTickets}</f:facet>
<p:column headerText="#{lbl.tblId}" sortBy="#{ticket.id}"
filterBy="#{ticket.id}" id="id">
<h:outputLink value="#{edit.xhtml?id=#{ticket.id}">#{ticket.id}</h:outputLink>
</p:column>
<p:column headerText="#{lbl.tblTitle}" sortBy="#{ticket.title}"
filterBy="#{ticket.title}" id="title"> #{ticket.title}
</p:column>
</p:dataTable>
<p:dialog header="#{lbl.moreTicketDetails}" widgetVar="ticketDialog"
resizable="true" width="500" showEffect="explode"
hideEffect="explode" closable="true" draggable="true">
<h:panelGrid id="display" columns="2" cellpadding="4"
dir="#{lbl.dir}">
<h:outputText for="shortDescription"
value="#{lbl.shortDescription}" />
<h:outputText id="shortDescription"
value="#{homeBean.selectedTicket.shortDescription}" />
<h:outputText for="callCenterList" value="#{lbl.callcenters}" />
<h:outputText id="callCenterList"
value="#{homeBean.selectedCallCenters}">
</h:outputText>
</h:panelGrid>
</p:dialog>
</h:form>
</f:view>
</h:body>
</f:view>
</html>
Es sollte einen Link oder eine Schaltfläche geben, die den Benutzer auf diese Seite führt, um ihn zu finden und 'ajax = false' zu setzen. –
@ ÖmerFarukAlmalı Haben Sie das Hauptproblem verstanden? –
@LuiggiMendoza Ja, es scheint, als wäre der Ansichtsstatus-Fehler ähnlich wie bei [http://stackoverflow.com/a/10665237/1659451] –