2017-02-22 11 views
1

Возможно ли получить текущий вид другого в Java?Интерфейсы: Как получить текущий порядок сортировки в Java?

Вот пример, где машины отсортированы по годам:

<p:column headerText="Year" sortBy="#{car.year}"> 
    <h:outputText value="#{car.year}" /> 
</p:column> 

Расширяя LazyDataModel<T> можно переопределить следующий метод:

public List<T> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,Object> filters) { 
    throw new UnsupportedOperationException("Lazy loading is not implemented."); 
} 

, но я хотел бы знать, как это сделать это без использования LazyDataModel.

Спасибо!

+1

Вы пытались привязать свою таблицу данных и прочитать ее от связанного объекта? –

+0

Эй, спасибо за ответ. Я принял ответ Алекс Огонь. –

ответ

4

Как Джаспер де Врис прокомментировал вы можете связать свой р: DataTable переменной в интерфейсе:

facelet

<p:dataTable binding="#{bean.dataTable}" ...> 

класс боб

private DataTable dataTable; 

public DataTable getDataTable() { 
    return dataTable; 
} 

public void setDataTable(DataTable dataTable) { 
    this.dataTable = dataTable; 
} 

public void methodToAccessSortOrder() { 
    String sortOrder = this.dataTable.getSortOrder(); 
    // do anything with sortOrder 
} 

В качестве альтернативы вы можете получите свой dataTable из корня представления, передав clientId вашего datatable :

public void methodToAccessSortOrder() { 
    DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("<CLIENT ID OF DATATABLE>"); 
    String sortOrder = dataTable.getSortOrder(); 
    // do anything with sortOrder 
} 
+0

Благодарим вас за подробный ответ! –

Смежные вопросы