I am facing issue with data table default sorting when I am forwading request. It works fine when I redirect.
here is my data table code (showBooks.xhtml)
Code: Select all
<p:dataTable id="bookDataTable" sortBy="#{book.price}" var="book" value="#{shoppingController.books}"
selection="#{orderController.selectedBook}" rowKey="#{book.id}" widgetVar="shubhamDataTable">
<f:facet name="header">
Select Book(s)
</f:facet>
<p:column id="shubhamColumn" styleClass="shubhamStyle" selectionMode="multiple" />
<p:column headerText="Name" >
#{book.name}
</p:column>
<p:column headerText="Author">
#{book.author}
</p:column>
<p:column headerText="Price" >
#{book.price}
</p:column>
<f:facet name="footer">
<p:commandButton value="Submit" onclick="if(!validate()) return false;"
actionListener="#{orderController.updateTotal}"
update=":form:displayMulti" oncomplete="multiBookDialog.show()" />
</f:facet>
</p:dataTable>
<h:commandLink>
Click here to export
<p:dataExporter type="pdf" target="bookDataTable" fileName="books" pageOnly="true"/>
</h:commandLink>
<p:dialog header="Selected Books" widgetVar="multiBookDialog"
height="300" showEffect="fade" hideEffect="explode">
<p:dataTable id="displayMulti" var="book"
value="#{orderController.selectedBook}">
<f:facet name="header">
Selected Book(s)
</f:facet>
<p:column>
<f:facet name="header">
Name
</f:facet>
<h:outputText value="#{book.name}" />
</p:column>
<p:column>
<f:facet name="header">
Author
</f:facet>
<h:outputText value="#{book.author}" />
</p:column>
<p:column >
<f:facet name="header">
Price
</f:facet>
<h:outputText value="#{book.price}" />
</p:column>
<f:facet name="footer">
<h:outputText value="#{orderController.total}" />
<h:commandButton value="Confirm" onclick="confirmation.show()"
type="button" />
</f:facet>
</p:dataTable>
Here is my bean code
Code: Select all
@ManagedBean(name = "shoppingController")
public class ShoppingController implements Serializable {
private List<Book> books;
private BookDataModel bookDataModel;
public ShoppingController() {
ApplicationContext applicationContext = ApplicationContextHelper
.getApplicationContext();
bookModal = (BookModal) applicationContext.getBean("bookModal");
books = bookModal.getBooks();
}
public List<Book> getBooks() {
return books;
}
public void setBooks(List<Book> books) {
this.books = books;
}
}
I am accessing this page after login screen sor in my login page if the login is successfull I am forwarding to this page. In this case default sorting doesn't work but whenevere I redirect or access the above page directly it works.
Please help...
Thanks.
Please note - I have extracted only relevent code.