我正在编写某种对象浏览器,用文件夹组织。当用户选择列表中的某个文件夹时,我必须在树中展开适当的节点。 我已经在树中实现了树扩展,元素选择,但BUT扩展可能发生在超出可见区域的树的一部分(CellTree在ScrollPane上)。 因此,我确实有一个TreeNode
的实例 - 我如何以编程方式滚动以使其可见?GWT CellTree滚动到任意节点
0
A
回答
2
这是不可能的,目前的API,但你可以试试,我没有测试过这一点,但应该是很容易:
- 对于树中的每个对象渲染和无形的标签,标识这对象,像一个
<input type="hidden" id="yourObjectId"/>
- 确保你有一个
SelectionModel
设置,当你的nodeinfo等 - 当你知道你要滚动到,打电话
yourSelectionModel.setSelected(object,true);
什么对象。这应该展开树并显示您选择的对象。 - 在这个阶段,你想要做的是:
Element cellTreeElement = yourCellTree.getElement(); NodeList<Element> objectIds = cellTreeElement.getElementsByTagName("input"); for (int i=0;i<elementsByTagName.getLength();i++) { Element e = objectIds .getItem(i); if (e.getId().equals(yourObjectId) { e.scrollIntoView(); } }
很肯定这应该只是罚款。
0
另一个版本(如果你想的元素移动到CellTree的顶部):
Element cellTreeElement = yourCellTree.getElement();
NodeList<Element> objectIds = cellTreeElement.getElementsByTagName("input");
for (int j = 0; j < objectIds.getLength(); j++) {
Element e = objectIds.getItem(j);
if (e.getId().equals("r" + iDistrictID)) {
yourCellTree.getElement().getParentElement().getParentElement().setScrollTop(e.getParentElement().getParentElement().getOffsetTop());
}
}
相关问题
- 1. GWT CellTree选择父节点
- 2. 带可编辑节点的GWT CellTree
- 3. GWT CellTree搜索:突出显示搜索到的节点
- 4. GWT CellTree选择
- 5. java gwt celltree
- 6. GWT-2.4.0,CellTree:从空节点删除“无数据”标签
- 7. GWT celltree改变图像时,节点开启/关闭
- 8. Gwt CellTree isLeaf()问题
- 9. GWT 2.1树或CellTree?
- 10. GWT CellTree创建问题
- 11. 设计GWT CellTree模型
- 12. GWT任意HTML
- 13. 如何在首次数据提取后选择GWT CellTree节点之一?
- 14. dynatree - 如何滚动到主动节点?
- 15. 如何滚动滚动AccessibilityNodeInfo节点
- 16. 添加滚动到GWT SuggestBox
- 17. 无法滚动到树节点
- 18. D3将节点滚动到视图中
- 19. TTreeView:AlphaSort滚动到选定节点(如MakeVisible)
- 20. 如何穿过GWT中的CellTree
- 21. 如何解决GWT CellTree消失(bug)?
- 22. 如何在CellTree GWT中搜索
- 23. Asynchrouns CellTree显示加载图标GWT
- 24. 编程方式刷新GWT CellTree
- 25. 将树节点滚动到滚动窗格的顶部
- 26. 在angular2中访问任意子节点
- 27. gwt CellTree更改打开/关闭项目图像动态
- 28. 将节点分配给任意节点,如何使用Libxml2?
- 29. 在任意数量的子节点树中找到一个节点
- 30. GWT树的工具提示:将节点添加到节点
不错,谢谢! – sab
一些注释: 最好是滚动到一些可见的元素,否则滚动(在我的情况下)到单元格的顶部(我在元素的render()中添加标记的元素)。但也许我必须使用样式将这个元素向下移动到底部。 并且关于第3点 - 仅仅调用'setSelected'是不够的 - 相反,我必须使用我的数据模型找到选定元素路径中的所有对象,然后使用 'tree.getRootTreeNode'和'rootNode.setChildOpen(。 ..)”。诀窍是'rootNode.setChildOpen(...)'返回打开的孩子作为'TreeNode'。 非常感谢! – sab