2011-02-04 77 views
0

例如:使用wicket禁用按钮时,更改组件的className?

<span class="button4"> 
    <button wicket:id="saveButton" type="submit"> 
    <wicket:message key="modalArchiveAccount.button.save" /> 
    </button> 
</span> 

从Java代码我设置按钮启用或禁用,问题是,我不知道什么时候按钮被禁用如何改变跨度的className。

+1

是否要禁用按钮* *前的请求发送(以避免提交表单两次)或*后*的要求(不管是什么其他原因。 ..)? – tetsuo 2011-02-04 18:58:10

回答

2

环绕你的按钮WebMarkupContainer

add(new WebMarkupContainer("spanId") { 
        { 
         add(new Button<String>("saveButton")){ 
         [... button logic...] 
         }; 
        } 
       }); 

<span wicket:id="spanId"> 
    <button wicket:id="saveButton" type="submit"> 
    <wicket:message key="modalArchiveAccount.button.save" /> 
    </button> 
</span> 

然后添加一个新的AttributeModifier( “类”,...)或AttributeAppender( “类”,...)的WebMarkupContainer使用与您用于禁用按钮的逻辑相同。

0
var jSpan = $('#saveButton').parent(); 
jSpan.removeClass('button4'); 
jSpan.addlass(someclass); 
0

下面是示例代码:

 final Button button=new Button("buttn") { 
      public void onSubmit() { 
       System.out.println("change...."); 
       setEnabled(false); 
      }; 
     }; 
     button.add(new AttributeModifier("class", true, new Model<Serializable>() { 
      @Override 
      public Serializable getObject() {    
       if (button.isEnabled()) 
        return "your_enabled_class"; 
       else return "your_disabled_class"; 
      } 
     }));