如何通过setVisible()方法wicket ajax更改方法中模型的可见性

时间:2013-07-24 09:17:08

标签: java html ajax button wicket

所以我有我的

公共类MyClass扩展了WebPage {

static   AjaxFallbackLink ddd = null;
  static AjaxFallbackLink dddd = null;

(...) }

在构造函数中我有:

ddd = new AjaxFallbackLink(“previous”){

        @Override
        public void onClick(AjaxRequestTarget target) {
           // 
        }
    };
   ddd.setOutputMarkupId(true);
   ddd.setOutputMarkupPlaceholderTag(true);
   ddd.setVisible(false);
        add(ddd);

现在我想创建一个方法来改变这个项目的可见性。 但是,调用ddd.setVisible(true);在这种方法中不起作用。

任何解决方案?

2 个答案:

答案 0 :(得分:4)

像这样创建你的链接adn设置条件应该在onConfigure()方法中可见:

  AjaxLink myLink = new AjaxLink("myLink") {
     @Override
     public void onClick(AjaxRequestTarget target) {
        //click stuff done here
     }

     @Override
     protected void onConfigure() {
        super.onConfigure(); 
        setVisible(hereTheVisibleCondition);
     }
  };

这样,只要链接得到渲染,它就会变得可见或不依赖于条件。

答案 1 :(得分:1)

罗伯特的回答通常被认为是更正确的,但我会提供另一种选择。

您已接近实施,但要进行更新,您必须致电target.add(myLink);以获取myLink的ajax刷新(在早期版本的Wicket中为target.addComponent())。

要使用方法更改可见性,您必须传递AjaxRequestTarget。在onClickAjaxButton的{​​{1}}方法中,您可以调用以下方法:

AjaxLink

希望有所帮助!