GXT(3.1.0)网格(?)导致浏览器地址更改?

时间:2014-06-03 22:08:18

标签: gwt grid href history gxt

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

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

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

  

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

这导致历史机制加载defaultPlace,这不是所需的行为。

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

  • 是否还有其他我不知道可能导致此类行为的GXT功能?
  • 我不知道如何进行调试。这一部分的任何提示?

1 个答案:

答案 0 :(得分:0)

GXT本身没有任何可以做到这一点 - 没有调用Window.Location(除了检查Web应用程序是http还是https),也没有任何JSNI调用$ wnd.location,没有引用到com.google.gwt.user.client.History甚至将语句继承到Activities / Places。

如果您的应用中没有一些自定义代码正在收听点击次数,那么这几乎可以让我们在应用中的某个地方减少<a href="#">,无论是在GXT本身,还是由您自己的代码呈现。您是否在网格中呈现了a个标记,或者菜单中的自定义小部件可能具有此标记?

您是否可以在(也是启用了活动/场所的)GXT Explorer演示中重现此问题,例如在http://www.sencha.com/examples/#ExamplePlace:basicgrid处使用菜单和其他网格交互?

(是的,你是对的,状态功能只使用cookie,如果你明确要求它 - 否则它只与任何其他使用的提供者交互。没有默认值将使用url来保持状态,尽管有没有真正的理由你不能做这样的事情。)

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