【问题标题】:SmartGWT TreeGrid SelectionSmartGWT TreeGrid 选择
【发布时间】:2011-11-02 03:26:55
【问题描述】:

我有一个 SmartGWT webapp,它使用带有数据源的 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 后才有效?如果是这种情况,我在哪里以及如何做到这一点?

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

【问题讨论】:

    标签: web-applications smartgwt


    【解决方案1】:

    我想通了:

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

    【讨论】:

    • 感谢您的回答。我会在我的情况下尝试一下,希望能够完成工作。
    • "MUP7:WARN:TreeGrid:isc_TreeGrid_0:can't getSelectedState without a DataSource with a primary key field set"
    • "MUP7:WARN:TreeGrid:isc_TreeGrid_0:can't getSelectedState without a DataSource with a primary key field set" - 当我调用 getSelectedState() 时出现此错误。我想我需要设置主键。您是否也在数据源上设置了主键?
    • 然后我尝试将一个字段设置为primaryKey,但随后导致某种StackOverflow!错误消息是“(RangeError):Maximum call stack size exceeded type : stack_overflow arguments:___gwt_ObjectId: 1811”
    • 您能否发布您的源代码(包括创建 TreeGrid 的源代码和数据源的源代码)。这将帮助我理解为什么我的代码不起作用。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多