2015-10-20 47 views
3

我有一個Vaadin網格中只包含可排序的容器中的項目的值,但他們被添加爲生成的屬性以及由於需要的事實自定義HTML標題標籤以符合該值。使用生成的屬性和HtmlRenderer它工作並呈現正常,但使用它們使所有列unsortable。有了Table,我可以用CellStyleGenerator完成,但是Grid有幾個優點。是否有任何解決方法來解決這個問題,並再次對列進行排序?Vaadin網格與生成的屬性和排序

將HtmlRenderer與Converter一起使用應該不會起作用,但我需要對象引用本身,而不僅僅是Converter所具有的字段,因爲html標題標記需要包含一些元信息。

回答

2

我最近偶然發現了同樣的問題,如果我正確理解你的問題。


對我來說,使生成的列排序,我需要覆蓋的方法getSortProperties()提供當ValuGenerator<T>GeneratedPropertyContainer

GeneratedPropertyContainer container = new GeneratedPropertyContainer(originalContainer); 
container.addGeneratedProperty("property-id", new PropertyValueGenerator<T>() { 

    [...] 

    @Override 
    public SortOrder[] getSortProperties(SortOrder order) { 
    return new SortOrder[] {order}; 
    } 
}); 
+0

我試圖達到相同,並添加了建議getSortProperties方法。點擊時,排序指示符出現在列標題中,但網格的排序不會更改。這個問題對你是否熟悉?你能提供匿名PropertyValueGenerator類的完整代碼嗎? –