2014-04-22 2 views
0

두 개의 열을 가지고있는 DataGrid가 있습니다. 데이터 유형 및 값. 데이터 유형에는 char, int, unsigned int, signed int 등의 옵션이있는 콤보 상자가 있습니다. 값 열에 값이 입력되었는지 확인하고 싶습니다. 다음과 같은 방법을 사용하고 있습니다.itemEditor를 사용하여 플렉스 DataGrid의 유효성 확인

<mx:DataGridColumn headerText="Value" 
           dataField="Values" 
           width="100" 
           editable="{!this.areVariablesReadOnly}"> 
      <mx:itemEditor> <mx:Component> <mx:TextInput restrict="0-9" maxChars="3" /> </mx:Component> </mx:itemEditor> 
      </mx:DataGridColumn> 

이렇게하면 값 열의 필드가 int 값에 대해서만 유효성이 검사됩니다. 이제 char을 선택했다면 다른 itemEditor를 사용하여 다른 방식으로 유효성을 검사해야합니다. 한마디로 ,

if (int) 
      use ItemEditor1 
    else if (char) 
     use ItemEditor2 
    else if (condition) 
     use Itemeditor3. 

는 사람이 올바른 방향으로 날 포인트?

답변

0

data 재산 (도 dataChange 이벤트) 여러분의 인생을 더 쉽게 만들 것입니다. 나는, 그러나

package 
{ 
    import mx.controls.TextInput; 

    public class ValueInput extends TextInput 
    { 
     public function set type(value:String):void 
     { 
      switch (value) 
      { 
       case "char": 
        restrict = null; 
        break; 
       case "int": 
        restrict = "0-9"; 
        break; 
       case "hex": 
        restrict = "0-9A-F"; 
        break; 
      } 
     } 
    } 
} 

:

<mx:itemEditor> 
    <fx:Component> 
     <local:ValueInput type="{data.type}"/> 
    </fx:Component> 
</mx:itemEditor> 

ValueInput.as : 예를 들어

,
당신의 MXML에서

(당신의 데이터 유형 필드 type이라고 가정) 이것이 "올바른 방향"이라고 말할 수는 없습니다. 그것을하는 한 가지 방법 일뿐입니다. 다른 많은 창의적인 방법이있을 수 있으며 개발자의 코딩 스타일에 따라 달라집니다.

당신이하려는 것은 또한 훌륭한 방법이었습니다. MX 구성 요소를 구현하는 데 약간 시간이 걸립니다.

희망이 도움이됩니다.