2017-11-10 6 views
1
this.grid.asSingleSelect().addValueChangeListener(event -> { 
     if (!Objects.isNull(event.getValue())) { 
      this.editor.showEditor(event.getValue()); 
     } 
    }); 

問題が表示されたら、editorはグリッドの半分をカバーしています。どのように私はそれを表示する前に選択した行にスクロールできますか?Vaadinグリッドで現在選択されている行にスクロールするにはどうすればよいですか?

私はあなたがthis.grid.scrollTo(rowId);できることがわかっていますが、現在選択されている行のIDを取得する方法が見つかりません。 Vaadin 8で

答えて

1

grid#scrollTo

grid.scrollTo(rowForValue, ScrollDestination.START); 
+0

はい、私はこの方法を知っていますが、現在選択されている行IDを取得する方法が見つかりません。 – Hex

+1

@Hexは、データが使用されているDataProviderにどのように格納されているかによって異なります。 ListDataProviderの場合、項目を反復してそのようにインデックスを見つけることは問題ありません。より大きなデータセットの場合、より効率的なインデックスの検索方法を使用する必要があります。例えば、いくつかの識別子をキーにして位置を値としてマップすることができます。 – Mika

1

あなたは、選択した項目を取得するために

public Set<T> getSelectedItems() 

方法をグリッド#1 getSelectedItemsを使用できるはずあなたの選択モードが選択単一であれば、それは一つのアイテムのセットを返します。 。

関連する問題