2017-07-31 17 views
1

グリッドにIndexedContainerを使用しています。列名を変更 - Vaadin 7.8.4

Grid grid = new Grid(); 
IndexedContainer container = new IndexedContainer(); 
grid.setContainerDataSource(container); 
container.addContainerProperty("Something", String.class, ""); 

コンテナプロパティの名前を変更する必要があります。たとえば、ボタンをクリックした後に、「Something」から「New property」にプロパティを変更します。何か案は ?どうもありがとうございました !

答えて

3

注1:どこからvaadin 7.8.4を入手しましたか?最新の7.x releaseは7.7.10です。この演習私はそれはタイプミスだと仮定して7.7.4を使用します...


注2:あなただけの列見出し、または全体のプロパティIDを変更するかどうかわかりません...それはあなたが使用できるだけのキャプションだ場合:

grid.getColumn("Something").setHeaderCaption("Something else"); 

私の知る限り、それは変更プロパティにはできません。あなたがプロパティを削除した場合、あなたが保存されているすべてのデータが失われることに注意してください

container-toggle-property

+0

public class MyGridWithChangeableColumnHeader extends VerticalLayout { public MyGridWithChangeableColumnHeader() { // basic grid setup Grid grid = new Grid(); IndexedContainer container = new IndexedContainer(); grid.setContainerDataSource(container); container.addContainerProperty("P1", String.class, ""); container.addContainerProperty("Something", String.class, ""); container.addContainerProperty("P3", String.class, ""); // button to toggle properties Button button = new Button("Toggle properties", event -> { String oldProperty, newProperty; if (container.getContainerPropertyIds().contains("Something")) { oldProperty = "Something"; newProperty = "Something else"; } else { oldProperty = "Something else"; newProperty = "Something"; } container.removeContainerProperty(oldProperty); container.addContainerProperty(newProperty, String.class, ""); grid.setColumnOrder("P1", newProperty, "P3"); }); addComponents(grid, button); } } 

の検索結果を:しかし、あなたはそれを削除し、新しいものを追加することによってこの問題を回避することができますそれを再度作成する必要があります。 – Shirkam

関連する問題