글쎄, 내가 하나를 생성하지만 문제의 무리가 : 텍스트가 붙어있다 Flex4에서 사용자 정의 MXAdvancedDataGridItemRenderer을 어떻게 만듭니 까?
TypeError: Error #1009: Cannot access a property or method of a null object reference. at Test/clickHandler()[C:\Documents and Settings\NDEGRAEV\workspace-dummy\Test\src\Test.mxml:27] at Test/___Test_AdvancedDataGrid1_click()[C:\Documents and Settings\NDEGRAEV\workspace-dummy\Test\src\Test.mxml:31]
- : 나는 렌더링 된 열을 클릭하면
- 내가 오류가 발생을 셀의 왼쪽 위 모서리;
- 셀의 배경이 선택한 셀의 배경으로 변경되지 않습니다.
내가 플렉스에 새로 온 사람과 나는 아마 완전히 잘못하고 있어요 그러나 여기 인터넷에서 사용자 정의 MXAdvancedDataGridItemRenderer의 많은 예는 없습니다. 올바른 방향으로 나를 가리킬 수 있습니까?
Test.mxml
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:test="*" initialize="init()"> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.Alert; [Bindable] private var data:ArrayCollection = new ArrayCollection(); private function init():void { var dataItem:DataItem = new DataItem(1000, 1000); this.data.addItem(dataItem); dataItem = new DataItem(1001, 1001); this.data.addItem(dataItem); } private function clickHandler(e:Event):void { var dataItem:DataItem = e.currentTarget.selectedItem as DataItem; Alert.show(dataItem.col1 + ' ' + dataItem.col2); } ]]> </fx:Script> <mx:AdvancedDataGrid dataProvider="{data}" click="clickHandler(event);" x="0" y="0" designViewDataType="flat"> <mx:columns> <mx:AdvancedDataGridColumn dataField="col1" headerText="Column 1"/> <mx:AdvancedDataGridColumn dataField="col2" headerText="Column 2" id="column2"/> </mx:columns> <mx:rendererProviders> <mx:AdvancedDataGridRendererProvider column="{column2}" renderer="MyRenderer" /> </mx:rendererProviders> </mx:AdvancedDataGrid> </s:Application>
나 자신 해결책을 발견
<?xml version="1.0" encoding="utf-8"?> <s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" focusEnabled="true"> <s:Label id="lblData" /> <fx:Declarations> <mx:NumberFormatter id="numberformatter" useThousandsSeparator="true" /> </fx:Declarations> <fx:Script> <![CDATA[ override public function set data(value:Object):void { if (value.col1 > 1000) { lblData.text = numberformatter.format(value.col2); } else { lblData.text = value.col2; } } ]]> </fx:Script> </s:MXAdvancedDataGridItemRenderer>
흠, 내 코드가 제대로 표시되지 않은 반감을 . XML을 어떻게 삽입합니까? – Koohoolinn
편집기에서 코드를 선택하고 "코드 샘플"버튼을 클릭하십시오. 아이콘에 1과 0이있는 아이콘입니다. –