<mx:DataGrid x="10" y="10" width="180" height="302" id="dgActions" dataProvider="{actionCollection}">
<mx:columns>
<mx:DataGridColumn headerText="Action" dataField="name"/>
<mx:DataGridColumn headerText="" dataField="setting" width="30" rendererIsEditor="true">
<mx:itemRenderer >
<mx:Component>
<mx:Box width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:CheckBox selected="{data.setting}" click="setActionSetting()">
<mx:Script>
<![CDATA[
private function setActionSetting(){
data.setting = String(this.selected);
}
]]>
</mx:Script>
</mx:CheckBox>
</mx:Box>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
"정적 유형의 참조를 통해 선택된 특정 속성에 대한 액세스가 가능합니다."라는 이유로 data.setting = String (this.selected) 행에 오류가 발생합니다.플렉스 CheckBox 질문
[편집] 위의 문제에 대한 해결책 (비록 완전히 엉망이 아님)은 일단 <mx:Component>
태그 안에 있으면 해당 구성 요소의 범위 내에 있습니다. 이 구성 요소 외부의 스크립트와 노드에 액세스하려면 outerDocument 개체를 사용해야합니다.
나는 그것이 무엇을 기대하는지 모르겠다. 나는 그 체크 박스의 선택된 (ness) 값의 참/거짓 값을 메서드로 전달할 것이라고 가정하지만, 이 문맥에서 "이것이"무엇인지 이해하십시오.
나는 분명히 잘못된 것을하고 있습니까? 내가 원했던 것은 데이터 소스가 초기에 체크 박스에 입력 된 상태의 변화를 반영하는 것입니다.
편집 : 필자는 트레이스 ('foo')를 함수에 추가하면 콘솔에 아무 것도 쓰지 않는 것으로 나타났습니다. 체크 박스의 기본 동작 (및 이벤트 캡처)이 내 함수로 버블 링하는 것을 방지합니까?
또한 문서의 나머지 부분에있는 객체에 대한 참조를 추가하면 해당 객체를 인식하지 못한다고 알려줍니다. 나는 Flex가 어떤 것들을 어떻게 다루는 지 완전히 혼란 스럽다 ... 어떤 추가적인 지침이나 참조에 대한 링크는 정말 편리 할 것이다.
여전히 가장 단순한 유스 케이스 (이 요구 사항을 충족시키지 못함) 외의 인라인 구성 요소를 사용하는 것이 궁극적으로 좋지 않은 솔루션이라고 생각합니다. 너무 많은 홀수 범위 문제가 발생하거나 디버그하기가 너무 어렵지 않고 적절한 항목 렌더러 구성 요소를 만들면 언제든지 다시 돌아와야 할 경우 코드를 훨씬 쉽게 관리 할 수 있습니다. –
좋아,하지만 나는 아직도 당신이 대안으로 추천하고있는 것이 확실하지 않다. 또한, 여기에는 복잡한 내용이 표시되지 않습니다 ... 확인란에 입력 된 부울 데이터 값이 있습니다. 확인란을 선택하면 데이터 원본 값이 변경 내용을 반영하고 서버로 다시 전달됩니다. . –