我正在使用Wicket与Wicket Kendo UI库。
我在其中一个步骤中有一个包含Kendo Grid的向导。当我到达此步骤时,表格显示正常,但是当我移动到下一步然后返回时,有时会出现问题:表格数据未显示在表格中,我看到的是空表格和启动画面滚动下去。
检查网络我发现在显示表的步骤时有两个请求:一个包含带有表标记和js的xml,另一个包含包含表行的json数据。两个请求都成功完成,但不知何故,表无法从第二个请求中获取其行的数据。
这个问题并不是每次都会发生,有时表会正确地获取数据。
试图找出我发现以下问题:Wicket向导在步骤之间切换时使用方法MarkupContainer.replace(Component child),因此可以在没有向导的情况下重现问题。您需要做的就是用其他东西替换页面上的表格,然后再将其交换回来。
有没有人知道为什么桌子会以这种奇怪的方式表现出来。是因为新的标记类型失去了与js-code的链接,而js-code无法找到将接收到的数据放在何处?
答案 0 :(得分:1)
好的,我已经找到了问题所在。渲染下一步时,Wicket向导会替换上一步的标记,对吧?这样做会导致从jquery缓存($ .cache)中删除相关的缓存数据。事实证明,kendo网格使用该数据,并且当恢复上一步并且渲染网格时,它无法找到该数据。所以在我的情况下,解决方案是在移动到下一步之前隐藏表,这样,当渲染网格时,它重新填充其缓存数据并且一切正常。