I try to change Primefaces dataTable columns sequence using displayPriority parameter. But it does not work.If I try to change isVisible parameter or Width parameter of column everything works fine, but displayPriority does not work, why?
My xhtml:
<p:dataTable id="dataTableIncomingDoc"
var="item"
scrollable="true"
scrollHeight="100%"
scrollWidth="100%"
showGridlines="true"
selectionMode="single"
draggableColumns="true"
resizableColumns="true"
size="small"
styleClass="fixed-size"
selection="#{docsBean.docEntitySelected}"
rowKey="#{item.id}"
value="#{docsBean.loadDocsList()}">
<p:column id="registrationDate"
headerText="Reg. date"
width="100"
filterBy="#{item.registrationDate}"
sortBy="#{item.registrationDate}"
filterMatchMode="contains">
<h:outputText value="#{item.registrationDate}"/>
</p:column>
<p:column id="regNr"
headerText="Reg. Nr."
width="100"
filterMatchMode="contains"
sortBy="#{item.regNr}"
filterBy="#{item.regNr}">
<h:outputText value="#{item.regNr}"/>
</p:column>
<p:column id="documentNr"
headerText="Doc. Nr."
width="100"
filterMatchMode="contains"
sortBy="#{item.docNr}"
filterBy="#{item.docNr}">
<h:outputText value="#{item.docNr}"/>
</p:column>
</p:dataTable>
My bean:
public List<DocEntity> loadDocsList() {
var dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("mainForm:dataTableIncomingDoc");
var a = dataTable.getColumns().get(1);
var b = dataTable.getColumns().get(2);
((Column) a).setDisplayPriority(2);
((Column) b).setDisplayPriority(1);
PrimeFaces.current().ajax().update(dataTable);
return docsList;
}