如何在wicket中创作手风琴

如何在wicket中创作手风琴,wicket,accordion,Wicket,Accordion,我正在使用wicket 1.4.17。我浏览了很多关于这方面的帖子,但不能清楚地理解它。我怎样才能用wicket制作手风琴 基本上,我要寻找的是一种具有1列和多行的表,其中每行可以展开或折叠,展开时的每行显示另一个数据表。下面的代码示例应该可以帮助您开始。 如果有什么不清楚的地方,请随时提问。当然,您可以在DetailPanel中进行更深入的讨论(这就是为什么我建议采用这种方法) AbstractRepeater exampleView=新列表视图(“exampleView”,myList){

我正在使用wicket 1.4.17。我浏览了很多关于这方面的帖子,但不能清楚地理解它。我怎样才能用wicket制作手风琴


基本上,我要寻找的是一种具有1列和多行的表,其中每行可以展开或折叠,展开时的每行显示另一个数据表。

下面的代码示例应该可以帮助您开始。 如果有什么不清楚的地方,请随时提问。当然,您可以在DetailPanel中进行更深入的讨论(这就是为什么我建议采用这种方法)

AbstractRepeater exampleView=新列表视图(“exampleView”,myList){
@凌驾
受保护的void populateItem(列表项){
//您可以使用自己的面板、片段等来说明此处的详细视图
//您也可以使用一个WebMarkupContainer来实现可见性,但我认为这很快就会变得非常混乱
final DetailPanel DetailPanel=new DetailPanel(“DetailPanel”,item.getModel());
detailPanel.setVisible(假);
detailPanel.setOutputMarkupPlaceholderTag(真);
添加项目(详细面板);
//添加AjaxLink以在detailView的可见性之间切换
AjaxLink detailLink=新的AjaxLink(“detailLink”){
@凌驾
公共void onClick(AjaxRequestTarget目标){
detailPanel.setVisible(!detailPanel.isVisible());
target.addComponent(detailPanel);
}
};
添加(详细链接);
}
};
添加(示例视图);
    AbstractRepeater exampleView = new ListView<Object>("exampleView", myList) {


        @Override
        protected void populateItem(ListItem<Object> item) {
            //you can use a own panel, fragment, etc to illustrate your detail view here
            //you could also use one WebMarkupContainer for visibility - but I'd assume this will get very messy, very soon
            final DetailPanel detailPanel = new DetailPanel("detailPanel", item.getModel());
            detailPanel.setVisible(false);
            detailPanel.setOutputMarkupPlaceholderTag(true);
            item.add(detailPanel);

            //add AjaxLink to switch between the visibilty of the detailView
            AjaxLink<Void> detailLink = new AjaxLink<Void>("detailLink") {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    detailPanel.setVisible(!detailPanel.isVisible());
                    target.addComponent(detailPanel);
                }
            };
            item.add(detailLink);

        }
    };
    add(exampleView);