我可以向 RepeatingView 添加元素而不刷新后者吗?

2024-03-09

假设我有一个包含复杂元素(例如包含小程序)的 RepeatingView。我想使用ajax向RepeatingView添加(或删除)一个新元素,但我不想刷新所有元素,因为这会导致小程序重新加载,这显然是我不想要的。

我使用的是 wicket 1.4.18

仅添加到目标我想要添加的元素,不起作用,我得到:Component with id (...) was not found while trying to perform markup update. Make sure you called component.setOutputMarkupId(true) on the component whose markup you are trying to update


看看这篇 Wicket in Action 文章中建议的方法:通过 ajax 仅重新绘制新创建的中继器项目 http://wicketinaction.com/2008/10/repainting-only-newly-created-repeater-items-via-ajax/

当您想要通过 AJAX 添加新元素时,问题在于新添加的项目没有根标记标签可供 Wicket 重新绘制它。

引用文章:

诀窍是给 Wicket 一个标签,通过 Ajax 重新绘制,这可以是 通过执行以下操作来完成:

  1. 创建标记来表示新项目
  2. 将其添加到标记中的正确位置
  3. 让 Wicket 通过 Ajax 重新绘制它

本文中的代码基本上在 ajax 提交按钮的回调中预先添加了一些 javascript,该回调实际上使用适当的 id 创建标记,以便 Wicket 能够稍后在将其添加到AjaxRequestTarget.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以向 RepeatingView 添加元素而不刷新后者吗? 的相关文章

随机推荐