Flex 동적 생 성 편집 가능 한 DataGrid 구현 코드

3163 단어 FlexDataGrid
1.먼저 제 가 이 DataGrid 가 가지 고 있 는 기능 1.표 두 는 동적 으로 생 성 되 었 습 니 다.2.줄 마다 번호 가 있 습 니 다.3.줄 마다 편집,삽입,삭제,수정 이 가능 합 니 다.4.모든 칸 은 검증 을 추가 합 니 다.5.셀 중 일 부 는 렌 더 링 을 통 해 생 성 된 것 입 니 다.예 를 들 어 Combobox,DateField.........................................................ItemEditor 만 사용 할 수 있 습 니 다.하지만 렌 더 링 대상 을 어떻게 얻 습 니까?바 이 두 를 통 해 끊임없이 바 이 두 를 통 해 ClassFactory 라 는 공장 이 원 하 는 구성 요 소 를 생산 할 수 있 는 지 알 게 되 었 습 니 다.여러 가지 어려움 이 지금 은 기억 이 나 지 않 는데,3 일 만 에 마침내 완성 되 었 다.왜 요?이렇게 써 야 돼 요?데이터 업데이트 시스템 을 만 들 려 면 매년 데이터 가 변화 하기 때문에 페이지 도 변화 가 필요 합 니 다.매년 소스 코드 를 바 꿀 수 는 없 잖 아 요.어떻게 든 동태 적 으로 만들어 주세요.이것 이 바로 이것 을 쓰 려 는 취지 다.3.관건 적 인 소스 코드
 
package datagridview
{
import com.adobe.serialization.json.JSON;
import com.jzh.test.ComboxColumn;
import com.jzh.test.ComboxItem;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.ComboBase;
import mx.controls.ComboBox;
import mx.controls.DateField;
import mx.controls.RadioButtonGroup;
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
import mx.core.ClassFactory;
import mx.validators.RegExpValidator;
import spark.components.DropDownList;
public class RendererUtil
{
public function RendererUtil()
{
}
public static function getButtonRenderer():ClassFactory{
var f:ClassFactory=new ClassFactory(OperateButtons);
f.properties={};
return f;
}
public static function getNumRenderer():ClassFactory{
var f:ClassFactory=new ClassFactory(numLabel);
f.properties={};
return f;
}
public static function getComboxRenderer(arr:ArrayCollection,label:String):ClassFactory{
//
var f:ClassFactory=new ClassFactory(ComboBox);
f.properties={dataProvider: arr,labelField:label,selectedIndex:'0',selectedItem:' '};// ,
return f;
}
public static function getRadioRenderer(label:String):ClassFactory{
var f:ClassFactory=new ClassFactory(ComboBox);
var arr:ArrayCollection=new ArrayCollection();
arr.addItem(" ");
arr.addItem(" ");
f.properties={dataProvider: arr,labelField:label,selectedIndex:'0',selectedItem:' '};// ,
return f;
}
public static function getDateRenderer():ClassFactory{
var f:ClassFactory=new ClassFactory(DateField);
f.properties={formatString:"YYYY-MM-DD",showToday:true};// ,
return f;
}
/* , */
public static function getValidateRenderer():ClassFactory{
var f:ClassFactory=new ClassFactory(RegExpValidator);
f.properties={ source:"roadcode",
property:"text" ,
expression:"^[0-9]*$",
noMatchError:" " };// ,
return f;
}
/* */
public static function getRenderer(label:String,callback:Function=null):ClassFactory{
var f:ClassFactory=new ClassFactory(numLabel);
f.properties={lab:label,callback:callback};
return f;
}
}
}
이상 의 코드 는 렌 더러 부분 입 니 다.

좋은 웹페이지 즐겨찾기