2010-12-15 8 views
5

GXT(Ext GWT)グリッドに選択リスナーを追加しようとしていますが、起動できないようです。私は運でこれには多くのバリエーションを試してみた:GXT Gridに選択リスナを追加しますか?

myGrid.addListener(Events.Select, new SelectionListener<ComponentEvent>() { 

    @Override 
    public void componentSelected(ComponentEvent ce) { 
     System.out.println("selected"); 
    } 
}); 

答えて

1

試してみてください。必要に応じて

myGrid.addListener(Events.Select, new Listener<GridEvent<ModelData>>() { 
    @Override public void handleEvent(GridEvent<ModelData> be) { 
     System.out.println("selected"); 
    } 
}); 

は、モデルタイプとModelDataを交換します。

+0

いいえ、どちらも起動しません。 – thedude19

+0

グリッドが選択イベントをキャプチャしていない可能性があります。 Events.SelectをEvents.DoubleClickに置き換えて、行をダブルクリックすると機能しますか? –

11
 myGrid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<ModelData>() { 

     @Override 
     public void selectionChanged(SelectionChangedEvent<ModelData> se) { 
      ... 

     } 
    }); 

+1

非常に便利な答えです。 _Note:_このハンドラは、選択解除が発生しても起動されます( 'Grid.getSelectionModel()。addSelectionChangedHandler') – Serg

1

は、このための回避策を発見したように見えたこのコードを試してみてください。

myGrid.addListener(Events.OnClick, new Listener<ComponentEvent>() { 

    @Override 
    public void handleEvent(ComponentEvent ce) { 
     // Handle the grid event 
    } 
}); 

はあなただけそれについての一般的なことを持っているように、そしてあなたがあなたのComponentEventをチェックし、キャストすることができますようですGridEvent GXT v3の

grid.getSelectionModel().addSelectionChangedHandler(
    new SelectionChangedHandler<ModelData>(){ 

@Override 
public void onSelectionChanged(SelectionChangedEvent<ModelData> event) { 
    } 
}); 
2

あなたはGXT 2.xのバージョンを使用していますか?必要なイベントが沈んだかどうかチェックしましたか?たとえば、 のようにします。grid.sinkEvents(Event.ONCLICK | Event.ONDBLCLICK | Event.MOUSEEVENTS);

0

にこの答えをアップグレードするには

関連する問題