Я пытаюсь получить данные моего richfaces для сортировки заголовков. Я в основном следовал приведенному здесь коду: http://richfaces -showcase.appspot.com / richfaces / component-sample.jsf? Demo = dataTable & sample = tableSorting & skin = blueSky
Мои заголовки имеют ссылки, и когда я нажимаю на них, в консоли Firebug вы видите, что происходит пост-запрос. После завершения обработки с таблицей ничего не происходит.
Кроме того, у меня есть некоторый код jquery, который выделяет строку, когда ваша мышь наведена на нее. После того, как вы щелкнете по одному из заголовков, выделение строк больше не будет.
Вот мой код.
<h:form>
<rich:dataTable value="#{protocolDetail.details.protocolEvents}" var="detail" id="table" rows="20" rowClasses="odd, even" styleClass="stable">
<rich:column sortBy="#{detail.date}">
<f:facet name="header">
<a4j:commandLink value="Date" render="table" action="#{protocolDetail.sortByDate}" />
</f:facet>
<f:facet name="footer">
<a4j:commandLink value="Date" render="table" action="#{protocolDetail.sortByDate}" />
</f:facet>
<h:outputText value="#{detail.date}" />
</rich:column>
<rich:column sortBy="#{detail.description}">
<f:facet name="header">
<a4j:commandLink value="Description" render="table" action="#{protocolDetail.sortByDescription}" />
</f:facet>
<f:facet name="footer">
<a4j:commandLink value="Description" render="table" action="#{protocolDetail.sortByDescription}" />
</f:facet>
<h:outputText value="#{detail.description}" />
</rich:column>
<rich:column sortBy="#{detail.comment}">
<f:facet name="header">
<a4j:commandLink value="Comment" render="table" action="#{protocolDetail.sortByComments}" />
</f:facet>
<f:facet name="footer">
<a4j:commandLink value="Comment" render="table" action="#{protocolDetail.sortByComments}" />
</f:facet>
<h:outputText value="#{detail.comment}" />
</rich:column>
</rich:dataTable>
</h:form>
<rich:jQuery selector=".stable tr" event="mouseover" query="jQuery(this).addClass('active')" />
<rich:jQuery selector=".stable tr" event="mouseout" query="jQuery(this).removeClass('active')" />
боб:
@ManagedBean(name = "protocolDetail")
@SessionScoped
public class ProtocolDetailBacker extends BaseObject {
private String protocol = "";
private int studyNumber;
// private ArrayList<ProtocolDetailBean> details;
private ProtocolDetailBean details = new ProtocolDetailBean();
ProtocolDAO dao = new ProtocolDAO();
private SortOrder dateOrder = SortOrder.UNSORTED;
private SortOrder descriptionOrder = SortOrder.UNSORTED;
private SortOrder commentsOrder = SortOrder.UNSORTED;
public ProtocolDetailBacker() {
FacesContext context = FacesContext.getCurrentInstance();
String[] values = context.getExternalContext().getRequestParameterValuesMap().get("protocol");
setProtocol(values[0]);
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public ProtocolDetailBean getDetails() {
try {
studyNumber = dao.getStudyNumber(getProtocol());
details.setProtocolNumber(getProtocol());
details.setStudyChair(dao.getStudyChair(studyNumber));
details.setShortDesc(dao.getShortDescription(studyNumber));
details.setLongDesc(dao.getLongDescription(studyNumber));
details.setPdc(dao.getPDC(studyNumber));
details.setProtocolEvents(dao.getProtocolEventDetails(getProtocol()));
System.out.println("");
} catch (SQLException e) {
e.printStackTrace();
}
return details;
}
public void setDetails(ProtocolDetailBean details) {
this.details = details;
}
public int getStudyNumber() {
return studyNumber;
}
public void setStudyNumber(int studyNumber) {
this.studyNumber = studyNumber;
}
public SortOrder getDateOrder() {
return dateOrder;
}
public void setDateOrder(SortOrder dateOrder) {
this.dateOrder = dateOrder;
}
public SortOrder getDescriptionOrder() {
return descriptionOrder;
}
public void setDescriptionOrder(SortOrder descriptionOrder) {
this.descriptionOrder = descriptionOrder;
}
public SortOrder getCommentsOrder() {
return commentsOrder;
}
public void setCommentsOrder(SortOrder commentsOrder) {
this.commentsOrder = commentsOrder;
}
public void sortByDate() {
descriptionOrder = SortOrder.UNSORTED;
commentsOrder = SortOrder.UNSORTED;
System.out.println("dateOrder = "+dateOrder);
if(dateOrder.equals(SortOrder.ASCENDING)) {
setDateOrder(SortOrder.DESCENDING);
System.out.println("dateOrder now = "+dateOrder);
} else if(dateOrder.equals(SortOrder.DESCENDING)) {
setDateOrder(SortOrder.ASCENDING);
System.out.println("dateOrder now = "+dateOrder);
} else {
setDateOrder(SortOrder.ASCENDING);
System.out.println("else dateOrder now = "+dateOrder);
}
}
public void sortByDescription() {
dateOrder = SortOrder.UNSORTED;
commentsOrder = SortOrder.UNSORTED;
System.out.println("dateOrder = "+dateOrder);
if(descriptionOrder.equals(SortOrder.ASCENDING)) {
setDescriptionOrder(SortOrder.DESCENDING);
System.out.println("dateOrder now = "+dateOrder);
} else if(descriptionOrder.equals(SortOrder.DESCENDING)) {
setDescriptionOrder(SortOrder.ASCENDING);
System.out.println("dateOrder now = "+dateOrder);
} else {
setDescriptionOrder(SortOrder.ASCENDING);
System.out.println("else dateOrder now = "+dateOrder);
}
}
public void sortByComments() {
descriptionOrder = SortOrder.UNSORTED;
commentsOrder = SortOrder.UNSORTED;
System.out.println("dateOrder = "+dateOrder);
if(commentsOrder.equals(SortOrder.ASCENDING)) {
setCommentsOrder(SortOrder.DESCENDING);
System.out.println("dateOrder now = "+dateOrder);
} else if(commentsOrder.equals(SortOrder.DESCENDING)) {
setCommentsOrder(SortOrder.ASCENDING);
System.out.println("dateOrder now = "+dateOrder);
} else {
setCommentsOrder(SortOrder.ASCENDING);
System.out.println("else dateOrder now = "+dateOrder);
}
}
}