2011-02-04 22 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"; 
      } 
     }));