2010-08-05 1 views
2

페이지에 버튼을 표시하는 것과 관련하여 문제가 있습니다. "업로드"및 "저장"이라는 두 개의 버튼이 있습니다. 처음에는 "업로드"버튼이 보이고, 저장 버튼은 .setVisible (false)입니다. 이 "저장"버튼을 보여주고 업로드 버튼을 숨길 필요하다 AjaxRequest 업로드의 버튼 중 Wicket : Ajax 응답 중 버튼 표시

… 
<tr> 
<td width="35%" align="right"> 
      <input type="submit" wicket:id="createUploadButton" value="Upload" class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all"/> 
     </td> 
     <td width="30%" align="right"> 

     </td> 
     <td width="35%" align="left"> 
      <input type="submit" wicket:id="createCancelButton" value="Cancel" class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all"/> 
     </td> 
</tr> 

하지만 오류가 있습니다. 코드 스 니펫은 다음과 같습니다.

AjaxButton createSaveButton=new IndicatingAjaxButton("createSaveButton"){ 

    private static final long serialVersionUID = 1L; 

    @Override 
    protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 
       // TODO Auto-generated method stub 
      } 
    }; 
    createSaveButton.setVisible(uploaded); 
    createSaveButton.setOutputMarkupId(true); 
    form.add(createSaveButton); 

AjaxButton createUploadButton=new IndicatingAjaxButton("createUploadButton"){ 

    private static final long serialVersionUID = 1L; 

    @Override 
    protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 

     … 
     createUploadButton.setVisible(false); 
     createSaveButton.setVisible(true); 
     target.addComponent(createUploadButton); 
     target.addComponent(createSaveButton); 
} 
createUploadButton.setOutputMarkupId(true); 
form.add(createUploadButton); 

누군가가 문제의 위치를 ​​알고 있습니까?

감사합니다. Sonja

+0

코드를 올바르게 포맷 할 수 있습니까? – ireddick

답변

4

setOutputMarkupPlacholderTag setOutputMarkupPlaceholderTag를 사용해야합니다. 참고 :

createSaveButton.setVisible(uploaded); 
createSaveButton.setOutputMarkupId(true); 

// Add This line 
createSaveButton.setOutputMarkupPlaceholderTag(true); 
form.add(createSaveButton); 

true 버튼으로 대체 할 수있는 숨겨진 요소를 HTML에 넣으려면.

+0

넣으면 작동합니다. createSaveButton.setOutputMarkupPlacholderTag (true); 대신 createUploadButton.setOutputMarkupPlacholderTag (true); 대단히 감사합니다! – sonjafon

+0

당신의 권리는 대답을 고쳤습니다. – stevemac

+0

그리고 .setOutputMarkupPlacholderTag (true)를 호출하면; .setOutputMarkupId (true)를 호출 할 필요는 없습니다. 첫 번째는 두 번째를 의미하기 때문에. – tpdi