我正在使用GWT展示示例中的自定义数据网格.. http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCustomDataGrid
每件事情都工作正常。我在单元格表格的行中有子行...
我有锚单元..它位于主行和子行中..
主行的ClickHandler
正在运行但不在子行中。
这是我对该单元格的代码
// ViewDetail.
td = row.startTD();
td.className(cellStyles);
td.style().trustedColor("blue");
td.style().cursor(Cursor.POINTER);
if (isNetworkRow) {
//td.text("subRowsAnchor");
} else {
}
renderCell(td, createContext(19), viewDetailsColumn, rowValue);
我在两种情况下渲染单元格,无论是行还是子行 所以我可以看到锚点,它的clickHandler也可以工作..
有什么办法可以区分点击哪个锚点,主行或子行。
我只是想做一个小工作。即改变锚文本的名称,如果它是一个子行..因为你可以在我的代码中... td.text
..
然后在renderCell上得到错误...
添加HTML或添加子元素后,无法添加属性。
任何想法,什么可以解决......
感谢
答案 0 :(得分:1)
要区分单击哪一行(根据展示样本,但通常应该相同),只需依赖选择哪一行(假设您没有被覆盖) /禁用选择处理。)
为列设置FieldUpdater
(使用锚定单元格渲染自身)并使用getKeyboardSelectedSubRow()
检查子行选择。类似的东西:
yourColumn.setFieldUpdater(new FieldUpdater<T, String>() {
public void update(int index, T object, String value) {
if (yourGrid.getKeyboardSelectedRow() != -1 ) {
if (yourGrid.getKeyboardSelectedSubRow() > 0) {
// Subrow selected.
} else {
// Main row selected.
}
}
}
});