我有一个标签,这是使用了多次在我的网页。它工作得很好,直到我尝试按Ajax更新标签。结果:只有第一个标签得到更新。这是一个已知的问题吗?我不确定,因为我不能打开JIRA页面:https://issues.apache.org/JIRA/browse/wicket(一直在跳)。我使用的是wicket 7.3.0版本
To reproduce this issue: 1. Add an label on your page (java part): private final Label label; .. label = new Label("yourLabel", "Your Text"); label.setOutputMarkupId(true); add(label); ... 1. Add your label multiple time (for e.g. 4 times) in your page (html part): ... <span wicket:id="yourLabel"/> <span wicket:id="yourLabel"/> <span wicket:id="yourLabel"/> <span wicket:id="yourLabel"/> ... 2. Add event handler for e.g. the ajax event is UpdateEvent in your page (java part) ... @Override public void onEvent(IEventevent) { if (event.getPayload() instanceof UpdateEvent) { //update your label label.setDefaultModelObject("new Text"); target.add(label); } }
=>只更新第一个标签。我有一个解决办法,通过添加4个不同的标签实例与相同的文本内容。
问题的根源在于Wicket组件不应该被多次使用--一个组件表示页面上的单个项。添加四个不同的标签对象(您的解决方案)是正确的。
如果这四个标签总是具有相同的内容,但内容有时会发生变化,则可以通过让这四个标签共享一个可写字符串模型来明确这一点。下面是一些伪代码:
IModel<String> labelModel = new Model<String>("Your Text");
label1 = new Label("label1", labelModel);
label1.setOutputMarkupId(true);
add(label1);
label2 = new Label("label2", labelModel);
label2.setOutputMarkupId(true);
add(label2);
...
@Override
public void onEvent(IEventevent) {
if (event.getPayload() instanceof UpdateEvent) {
//update your label
labelModel.setObject("new Text");
target.add(label1);
target.add(label2);
}
}
或者,您可以通过创建Label子类来进一步封装内容,该子类实现onEvent方法本身并调整它自己的文本。
我正在尝试用杜松子酒和戈尔姆酒制作API。现在我已经插入了一个API。这个API将在数据库中创建多个条目。我有这样的json体。数组的大小会有所不同。 这样,我就有了从url获取的其他参数- 现在我想在DB上创建多个条目[1,2],其中包含key1和key2的数据,如- 我陷入了困境,不知道如何阅读这个json并将数据保存在我的模式(struct)中,以创建多个条目,如- 请引导我找到一个可能的解
我一直在寻找一个使用可重用模型对话框窗口的解决方案,但在那里我可以自由地使用内容,并在React中使用了高级组件模式。如下所述:https://stackoverflow.com/a/31564812. 虽然这最初似乎是可行的,但当我使用一个包装器包装不同的东西(在不同的时间)时,我会遇到麻烦。 首先,我要: 然后我做了: 和 然后我得到的是这两个组件共享它们的状态。当一个被定义时,另一个将显示与
问题内容: 我想更新表的所有字段的值为“ PCNAME”。我要更新的表名是XYZ。我只想更新一些字段而不保留一些不变。 这会影响很多行而不是一行,因为会有很多行带有NAME =’PCNAME’。我如何使用JPA做到这一点。我有与此表关联的实体类。 问题答案: 您既可以采用面向对象的方式,也可以使用更新查询。 面向对象: 使用更新查询(未试用): 显然,第二个版本的性能更好。
问题内容: 此代码示例属于Stopwatch类的一部分,该类属于一个较大的项目的一部分,该更大的项目的目的是成为模仿Android Clock的桌面gui应用。我具有秒,分钟,小时等标签,这些标签应该从计时器任务内部的无限while循环中更新,而该计时器任务在布尔状态为true时运行。while循环应该实时更新GUI标签。我让计时器任务每毫秒执行一次。为什么我的GUI在程序更新第一个Label后立
问题内容: 我在使用Tkinter和PIL更新标签时遇到了一个“小”问题。 当我按下起 司 按钮时,它应该显示foo2,但是它只显示白色屏幕。有什么建议? 这是我的代码: 问题答案: 好吧,我认为原因是当您按下按钮时。这是因为此行: 应该: 出现这种情况,是因为,等回报。