의 아이템 렌더러는 구성 요소의 "항목"또는 하위 구성 요소의 모양을 정의하는 데 사용되는 구성 요소입니다. ADG의 경우 "항목"은 개별 셀입니다. 렌더러로 작동하도록 완전히 맞춤화 된 클래스를 만들거나 (필수 인터페이스를 구현 한 경우) 또는 대부분의 경우 기존 구성 요소를 확장 할 수 있습니다. ADG 셀의 기본 렌더러는 배경색을 지원하지 않으므로 렌더러로 사용하는 구성 요소를 만들거나 확장해야합니다. 즉, 다음과 같은 질문에 연계 된 튜토리얼,에서 일한다는 기본 전제입니다 :
Setting background color for datagrid row in Adobe Flex
배경 색상을 지원하는의 itemRenderer를 만든 후, 당신은 정의 할 수있는 곳과 같은 두 가지 옵션이 당신의 " 정황"; itemRenderer 내부 또는 ADG의 styleFunction을 사용하여 (itemRenderer가 "background"스타일을 정의하도록 추가적으로 요구).
귀하의 경우, 각 셀에 전송 된 데이터에 현재와 어제의 주가 값을 포함시키고 둘을 비교하여 배경을 그리는 데 사용 된 색을 결정할 수 있습니다. 다시 말하면 위에 제공된 자습서 링크를 참조하십시오.
if(data.today > data.yesterday)
{
// set color or return style
}
else ...
으로 "전환"사용자 정의 셀 색상, 스위치 사이에 다음의 itemRenderer 또는 styleFunction 중 하나에서, 당신은의 itemRenderer의/styleFunction의 데이터 객체에 속성을 비교하는 것, 예를 들어, (당신이보고있는 행에 해당) 커스텀 렌더러와 디폴트 (무색) 렌더러. 즉, 색상을 표시해야 할 때 itemRenderer 속성을 사용자 정의 itemRenderer 클래스로 설정하고 "기본 비헤이비어"를 원할 때 "null"로 설정합니다.
답장을 보내 주셔서 감사합니다. 값이 위/아래 인 경우 RED/GREEN을 표시해야하는 곳에서 ITEMRENDERER를 사용할 수 있습니다. 그러나 동일한 행의 다른 셀과 셀을 비교하는 것이 어렵습니다. 에서와 같이, 오늘 2 열, 어제 있습니다. TODAY 및 YESTERDAY 값을 기준으로 오늘 페인트해야합니다. 즉, 한 행에 대해 오늘> 어제이면 오늘은 녹색이되고 그렇지 않으면 빨간색이됩니다. – online19
itemRenderer 내부의 열을 비교할 수 있지만 dataProvider를 ADG에 할당하기 전에 처리하는 것이 더 쉽습니다. 예를 들어 dataProvider의 데이터 객체에 새 속성 (예 : "higherThanYesterday"부울 값)을 만들 수 있습니다. 그것을 계산 한 다음 해당 속성의 값에 따라 색상을 지정하십시오. – Stiggler
나는 비록 쿼리를 변경할 수 없습니다. itemRenderer 내부의 열을 비교할 수 있다고 언급했습니다. 제가 그것에 대해 더 많이 알 수있는 자원을 가르쳐 주시겠습니까? – online19