我想在用户向上或向下按下键时获取GWT CellTable中的选定行。在我的示例中,我有一个包含三列(ID、名称、日期)的表,并且我已经实现了处理单击事件的代码。单击一行时,我得到选定的对象。现在,我想在使用上下箭头键在表格的行中移动时执行相同的操作。
这是我的代码:
// 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
内的键盘导航仅更新键盘所选行。只有按回车键,该行才会被选中。
,则可以将键盘选择策略设置为绑定到选择。我不确定它如何与NoSelectionModel
一起工作,但与SingleSelectionModel
一起工作可能会更好.
您需要了解 GWT 小部件和单元格表的键盘选择策略。
正确的方法是仅允许使用键"向上"和"向下"进行行导航,并使用键"左"和"右"进行单元格导航。行的选择应仅在单击"空格"或"输入"键时进行。
所有这些都已经随 GWT 单元表提供。 您可以查看源代码和演示 http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCellTable
您可以使用 getKeyboardSelectedRow() 方法获取 CellTable 的行。这将返回通过键盘或鼠标选择的行的 int 索引。
GWT Javadoc for CellTable:http://www.gwtproject.org/javadoc/latest/
public int getKeyboardSelectedRow()
获取当前通过键盘选择的行相对于页面开始索引的索引。
这与选择模型中的选定行不同。键盘所选行是指用户通过键盘或鼠标导航到的行。
返回:当前选定的行,如果未选择,则返回 -1