SmartGWT TreeGrid选择

时间:2009-07-23 20:47:11

标签: web-applications smartgwt

我有一个SmartGWT webapp,它使用带有dataSource的TreeGrid。我希望这个treeGrid预先选择保存在cookie中的值。我已经正确地将值保存在cookie中,但是我已经尝试了几种不同的方法来获取treeGrid以选择这些值而我无法使其工作。我试图在我的入口点的onmoduleLoad方法中执行此操作。

我试过了:

Cookies.setCookie( "selectedUnit", TreeGrid.getSelectedPaths() )

设置Cookie,然后重新加载页面:

TreeGrid.setSelectedPaths( Cookies.getCookie("selectedUnit" )
当我无法使用它时,我尝试只存储所选项目的ID:

Cookies.setCookies( "selectedUnit", TreeGrid.getSelected().getAttribute("id") )

然后onLoad尝试找到该记录并选择它:

TreeGrid.selectRecord( TreeGrid.getTree().find("id", Cookies.getCookie("selectedUnit") ) )

这也不起作用,所以最后我尝试存储TreeGrid.getSelectedState()并从cookie onLoad中检索该值,并将其传递给TreeGrid.setSelectedState(),类似于我的第一次尝试,但是传递状态而不是路径。

我无法使这些东西发挥作用。我不能告诉TreeGrid选择'OnmoduleLoad'方法中的项目吗?此操作仅在绘制TreeGrid后有效吗?如果是这种情况,我该怎么做?

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

我明白了:

我最终使用了set(/ get)SelectedState。我遇到的问题是在构造函数中调用setSelectedState,它试图在数据实际存在之前设置所选状态。我通过为树设置onDataArrived处理程序然后展开树(获取所有数据)然后设置选定状态来修复此问题。