2014-09-03 3 views
0

사용자 지정 구성 요소를 동적 양식으로 유효하게 만들 수 없습니다. 많은 버전을 시도했지만 예상대로 작동하지 않습니다. 예 : 필드가 필수임을 나타내는 레이블이 굵게 표시되지 않고 필드에 아무 것도 입력하지 않고 양식을 저장할 수있게됩니다. 사용자가 입력란에 내용을 입력하고 삭제할 때만 빨간색 아이콘이 필드에 필수 항목임을 사용자에게 표시합니다. 누락 된 부분은 알지 못합니다. 도와주세요. 코드는SmartGWT의 사용자 지정 구성 요소를 확인할 수 없습니다.

다음

enter image description here

telnumber = new CustomTelephoneTextItem(); 
telnumber.setName("tel"); 
telnumber.setTitle("Tel"); 
telnumber.setTitle(nerpweb.clientFactory.getMessages().tel()); 

는 굵게 나와 서 항목 제목을 원한다면, 당신은 호출해야합니다, 위 클래스 항목의

public class CustomTelephoneTextItem extends CanvasItem 
{ 
    textField_value = new CustomIntegerItem(); 
    textField_value.setShowTitle(false); 
    textField_value.setWidth(100); 
    textField_value.setRequired(true); 

    form.setItems(textField_value, textField_code); 
    form.validate(); 

    setWrapTitle(false); 
    this.setCanvas(form); 

답변

1

먼저 사용하고 단골 TextItem입니다 이하 setRequired (true).

은 telnumber.setRequired (true)입니다.

두 번째로 form.validate()에서 항목의 유효성을 검사하려면 항목의 validate() 함수를 재정의하고이 함수에 유효성 검사 코드를 작성해야합니다. 코드에서

코드가 사용자 지정 구성 요소를이 코드는 사용자 정의 컴포넌트에 갈 것

확인하도록 구현 될 수있다 CustomTelephoneTextItem의 유효성() 함수 여기

0

에서 호출 form.validate()인지 것 구현

그래서

같은 당신이 setRequired() 메소드를 호출 사용자 정의 구성 요소를 생성하는 클래스에서 다음
@Override 
public Object getValue() 
{ 
    if (validate() && textField_value.getValue() != null) 
     return textField_value.getValue(); 
    return null; 
} 

@Override 
public void setRequired(Boolean required) {  
    super.setRequired(true); 
} 

@Override 
public Boolean validate() {  
    return super.validate(); 
} 


@Override 
public void setValidators(Validator... validators) { 
    textField_value.setValidators(validators); 
} 

0

telnumber.setRequired(true); 
관련 문제