【问题标题】:GXT (3.1.0) Grid (?) causes browser address change?GXT(3.1.0)网格(?)导致浏览器地址更改?
【发布时间】:2014-06-03 22:08:17
【问题描述】:

我想将主要包括Grid 的基于 GXT 的视图集成到现有的 GWT 应用程序中。

  • 网格包含一些自定义Menus,例如可从 Grid 的每个单元格访问。
  • GWT 应用程序使用 GWT 的history menchanism

集成后,Menu的访问导致浏览器地址发生变化,例如

xxxx://.../?gwt.codesvr=...#MyPlace:param=value -> xxxx://.../?gwt.codesvr=...#

这会导致 History 机制加载 defaultPlace,这不是预期的行为。

起初我认为 GXT 的stateful feature 可能会导致地址更改,以便在那里维护状态信息。但是,网格配置为无状态,StateManager 中使用的默认ProviderCookieProvider

  • 是否还有其他我不知道的 GXT 功能会导致这种行为?
  • 我不知道如何调试这个。这部分有什么提示吗?

【问题讨论】:

    标签: gwt grid href history gxt


    【解决方案1】:

    GXT 本身无法做到这一点 - 没有调用 Window.Location(除了检查 Web 应用程序是 http 还是 https),也没有任何 JSNI 调用 $wnd.location,没有引用 @ 987654323@ 甚至将语句继承到活动/地点。

    如果您的应用程序中没有一些自定义代码来监听点击,这几乎可以将我们简化为应用程序某处的一些<a href="#">,无论是在 GXT 本身中,还是由您自己的代码呈现。您的网格中是否有任何a 标记,或菜单中可能有此的自定义小部件?

    您能否在(也支持 Activity/Place 的)GXT Explorer 演示中重现此问题,例如 http://www.sencha.com/examples/#ExamplePlace:basicgrid 的菜单和其他网格交互?

    (是的,您是对的,状态功能仅在您明确要求时才使用 cookie - 否则它只会与使用的任何其他提供程序交互。默认值都不会使用 url 来保存状态,尽管有没有真正的理由你不能做这样的事情。)

    要调试此问题,请使用浏览器的工具检查您单击的任何似乎导致此问题的内容 - 是否为 <a> 标记,href 指向 #?如果是这样,为什么?或者,是否对Window.Location.assignreplaceHistory.newItem 进行了错误调用?任何 JSNI 可能会做同样的事情?

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多