读书人

flex关于datagrid的渲染器的有关问题

发布时间: 2012-03-25 20:55:17 作者: rapoo

flex关于datagrid的渲染器的问题
[Bindable]
public var ssData:XML =
<students>
<student name="广东">
<grade>广州</grade>
<grade>深圳</grade>
<grade>珠海</grade>
</student>


<student name="湖南">
<grade>长沙</grade>
<grade>株洲</grade>
<grade>湘潭</grade>
</student>

<student name="湖北">
<grade>武汉</grade>
<grade>荆州</grade>
<grade>襄樊</grade>
</student>

</students>;

[Bindable]
public var employees1:ArrayCollection=new ArrayCollection([
{name: "王平1", age: 15, lguage: 100, mathematics: 100, english: 80, dataSelected: true, control: false, provinces: "广东", urban: "深圳"},
{name: "王平2", age: 15, lguage: 70, mathematics: 80, english: 80, dataSelected: true, control: false, provinces: "广东", urban: "深圳"},
{name: "王平3", age: 19, lguage: 100, mathematics: 100, english: 100, dataSelected: true, control: true, provinces: "广东", urban: "深圳"},
{name: "王3", age: 18, lguage: 70, mathematics: 80, english: 80, dataSelected: false, control: false, provinces: "广东", urban: "深圳"},
{name: "王2", age: 20, lguage: 70, mathematics: 80, english: 80, dataSelected: false, control: true, provinces: "广东", urban: "深圳"},
{name: "王1", age: 20, lguage: 70, mathematics: 80, english: 80, dataSelected: true, control: true, provinces: "广东", urban: "深圳"},
{name: "王4", age: 20, lguage: 70, mathematics: 80, english: 80, dataSelected: false, control: false, provinces: "广东", urban: "深圳"},
{name: "李明", age: 20, lguage: 70, mathematics: 40, english: 90, dataSelected: false, control: true, provinces: "广东", urban: "深圳"},
{name: "张东", age: 18, lguage: 40, mathematics: 80, english: 80, dataSelected: true, control: false, provinces: "广东", urban: "深圳"},
{name: "张明", age: 20, lguage: 100, mathematics: 50, english: 70, dataSelected: true, control: false, provinces: "广东", urban: "深圳"},
{name: "王强", age: 20, lguage: 300, mathematics: 60, english: 50, dataSelected: true, control: true, provinces: "广东", urban: "深圳"},]);

<mx:DataGridColumn dataField="name"
headerText="姓名"
editable="false"/>
<mx:DataGridColumn dataField="provinces"
headerText="省"
editable="true"
>
<mx:itemEditor>
<fx:Component>
<asvlaue:TestCombobox dataProvider="{outerDocument.ssData.student}"
labelField="@name" change="testcombobox1_changeHandler(event)" >



</asvlaue:TestCombobox>


</fx:Component>



</mx:itemEditor>

</mx:DataGridColumn>


<mx:DataGridColumn dataField="urban"
headerText="市"
editable="true"
>
<mx:itemEditor>
<fx:Component>
<mx:ComboBox creationComplete="combobox1_creationCompleteHandler(event)"
>
<fx:Script>
<![CDATA[
//import events.myEvent;
//


//import mx.events.FlexEvent;
//
//protected function combobox1_creationCompleteHandler(event:FlexEvent):void
//{
//
//this.addEventListener("comboxEvent", onComboxcrea, false, 0, true);
//
//}
//
//
//protected function onComboxcrea(event:myEvent):void
//{
//
//
//
//}

]]>
</fx:Script>
</mx:ComboBox>



</fx:Component>


</mx:itemEditor>


</mx:DataGridColumn>
<mx:DataGridColumn headerText="年纪"
dataField="age"
itemRenderer="asvlaue.AgeTextIput"
editable="false"/>
<mx:DataGridColumn headerText="A:B" editable="false">
<mx:itemRenderer>
<fx:Component>
<mx:HBox textAlign="center" enabled="false">
<mx:TextInput width="60"/>
<mx:Label text=":"/>
<mx:TextInput width="60" enabled="false"/>

</mx:HBox>


</fx:Component>


</mx:itemRenderer>


</mx:DataGridColumn>


请问各位大大怎么在datagrid里面实现COMbobox的级联呢,我不知道怎么获取到第一个combobox的selectedItem,请各位大大直接一下,直接能上代码的最好啊 !我默认显示的是广东 当他点击的时候渲染器就会出现combobox让他选,关键是我第二个渲染器获取不了第一个的状态,渲染器是循环的没有ID,后面的我该怎么获取前面渲染器的selectedItem,让他完成这个级联呢 ?






[解决办法]
这个需求不是很难。监听第一个combobox的change事件,每次改变都更新存储一个临时变量。第二个combobox根据这个临时变量更改其数据源。
[解决办法]
捕获数据源之后,然后根据第一个combox值联动当前的这个combox 并确定selected item
[解决办法]
</mx:DataGridColumn id="dgc">

dgc.selectIndexItem

读书人网 >flex

热点推荐