我想在GWT CellTable中獲取選定的行,當用戶向上或向下按下鍵時。在我的例子中,我有一個包含三列(ID,名稱,日期)的表格,並且我已經實現了處理click事件的代碼。當點擊一行時,我得到選定的對象。現在我想用箭頭鍵向上和向下移動表格的各行時執行相同的操作。如何使用GWT CellTable中的選定行來使用按鍵?
這是我的代碼:
// Create id column.
TextColumn<MyObject> idColumn = new TextColumn<MyObject>()
{
@Override
public String getValue(MyObject obj)
{
return String.valueOf(obj.getId());
}
};
// Create name column.
TextColumn<MyObject> nameColumn = new TextColumn<MyObject>()
{
@Override
public String getValue(MyObject obj)
{
return obj.getName();
}
};
// Create date column.
TextColumn<MyObject> dateColumn = new TextColumn<MyObject>()
{
@Override
public String getValue(MyObject obj)
{
return String.valueOf(obj.getDate());
}
};
// Create the CellTable element and add columns
CellTable<MyObject> table = new CellTable<MyObject>();
table.addColumn(idColumn, "ID");
table.addColumn(nameColumn, "Name");
table.addColumn(dateColumn, "Date");
// Create the selectioModel and the SelectionChangeEvent Handler
NoSelectionModel<MyObject> selectionModelMyObj = new NoSelectionModel<MyObject>();
Handler tableHandler = new SelectionChangeEvent.Handler()
{
@Override
public void onSelectionChange(SelectionChangeEvent event)
{
MyObject clickedObj = selectionModelMyObj.getLastSelectedObject();
Window.alert("Object selected: " + clickedObj);
}
};
// Add the handler to the selection model
selectionModelMyObj.addSelectionChangeHandler(tableHandler);
// Add the selection model to the table
table.setSelectionModel(selectionModelMyObj);
感謝所有。
感謝您的信息。我不知道CellTable是如何工作的。我將使用SingleSelectionModel而不是NoSelectionModel,它對我的程序更好。謝謝。 –