gpt4 book ai didi

java - Wicket:创建指向数据表中行的动态 anchor 链接

转载 作者:行者123 更新时间:2023-12-01 08:59:06 25 4
gpt4 key购买 nike

我需要创建一个指向数据表中行的 anchor 链接的动态列表。

按照本示例,我从(排序的)数据表开始

A Simple Sortable DataTable Example

“FooPanel”应包含数据表中每一行的一个链接。

到目前为止的代码是:

public class FooPanel extends Panel {

private static final long serialVersionUID = 1L;

private Link<String> createLink(String linkName, final String name)
{
final Link<String> l = new Link<String>(linkName) {
private static final long serialVersionUID = 1L;

@Override
public void onClick() {
}
};
l.setBody(Model.of(name));
return l;
}

public FooPanel(final String id, IModel<List<String>> model) {
super(id);

final List<String> linkList = model.getObject();

final Label myLabel = new Label("myLabel", "this is my label");
myLabel.setOutputMarkupId(true);
this.add(myLabel);

final RepeatingView view = new RepeatingView("fooPanelItems");

for (final String linkLabel:linkList)
{
final Link<String> link = createLink(view.newChildId(), String.format("[ %s ]", linkLabel));
link.setAnchor(myLabel);
link.setOutputMarkupId(true);
view.add(link);
}

this.add(view);
}
}

private class LazyFooPanel extends AjaxLazyLoadPanel
{
private static final long serialVersionUID = 1L;
final IModel<List<String>> m_model;

private LazyFooPanel(final String id, IModel<List<String>> model)
{
super(id, model);
m_model = model;
}

@Override
public Component getLazyLoadComponent(final String markupId)
{
return new FooPanel(markupId, m_model);
}

@Override
protected void onComponentLoaded(final Component component, final AjaxRequestTarget target)
{
target.add(component);
}
}

我在将动态链接与数据表中的项目链接起来时遇到问题 - 您能帮忙吗?

最佳答案

此时,您将Link添加到RepeatingView。我认为您需要向其添加一个 Panel 。该面板将有自己的标签链接以及您在一行中需要的任何其他内容。

如果您不想使用新面板,则可以使用 WebMarkupContainer 并将标记保留在 FooPanel.html 中。

关于java - Wicket:创建指向数据表中行的动态 anchor 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41827930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com