拖拉scrollbar時出現錯亂的現象
如题,拖动滚动条DATAGRID的数据就会错乱!!
一下是代码,各位请帮忙看看,感激不尽!!~~~~~~~
<mx:DataGrid id="dg" width="700" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="実区" width="80" dataField="k">
<mx:itemRenderer>
<mx:Component> <mx1:DatagirdCheckBox isSelected="{data.k}" />
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="工 程" width="470" dataField="data">
<mx:itemRenderer>
<mx:Component> <mx1:GroupLabelRenderer array="{data.data}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="計 画" dataField="data">
<mx:itemRenderer>
<mx:Component>
<mx1:GroupTextRenderer array="{data.data}" />
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
×××××××××GroupLabelRenderer ×××××××××××××××××
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:ns1="jp.mdis.msu.flex.control.ui.*"
implements="mx.controls.listClasses.IDropInListItemRenderer, mx.controls.listClasses.IListItemRenderer"
verticalGap="0" horizontalGap="0" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0"
width="633" height="100%" creationComplete="addComponet()" borderStyle="none" verticalScrollPolicy="off" horizontalScrollPolicy="off">
<mx:Style>
.solidBorder{borderSides:"top left";
borderStyle:"solid";
borderThickness:"1";}
</mx:Style>
<mx:Script>
<![CDATA[
import mx.controls.listClasses.BaseListData;
import mx.controls.Label;
import mx.containers.GridItem;
import mx.containers.GridRow;
import mx.containers.Grid;
import mx.controls.TextInput;
public var aa:Number;
public var array:Array;
private var _listData:BaseListData;
public function get listData():BaseListData
{
return _listData;
}
public function set listData(value:BaseListData):void
{
_listData = value;
}
public function addComponet():void{
var obj:Object = new Object();
obj = array[0];
lb.text = obj.ktstepCd;
var ktdetailCdArr:Array = obj.ktdetailCd as Array;
var ktdetailCdArrNum:int = ktdetailCdArr.length;
for(var i:int = 0; i<ktdetailCdArrNum; i++){
var label:Label = new Label();
var hbox:HBox = new HBox();
hbox.height=26;
hbox.styleName="solidBorder";
hbox.width = lableID.width;
label.height = 24
label.text = ktdetailCdArr[i];
hbox.addChild(label);
lableID.addChild(hbox);
if(ktdetailCdArr[i].toString() == ""){
lableID.visible = false;
}
}
}
]]>
</mx:Script>
<mx:VBox id="leftBox" width="230" height="100%"
borderSides="bottom top"
borderStyle="nones"
borderThickness="0"
paddingBottom="0"
verticalAlign="middle">
<ns1:MsuLabel id="lb" textAlign="left" fontWeight="normal"/>
</mx:VBox>
<mx:VBox id="lableID" width="240" height="100%" verticalGap="0" horizontalGap="0"
borderStyle="none" borderSides="top" borderThickness="1" >
</mx:VBox>
</mx:HBox>
×××××××××××××GroupTextRenderer ××××××××××××××××××××××××
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="0" horizontalGap="0" paddingRight="0" paddingTop="1"
implements="mx.controls.listClasses.IDropInListItemRenderer, mx.controls.listClasses.IListItemRenderer"
width="100%" height="100%" creationComplete="addComponet()" borderStyle="none" verticalScrollPolicy="off" horizontalScrollPolicy="off">
<mx:Style>
.border{borderSides:"bottom left";
borderStyle:"solid";
borderThickness:"1";
verticalAlign:"middle";}
.border1{ verticalAlign:"middle";
horizontalAlign:"left";}
</mx:Style>
<mx:Script>
<![CDATA[
import mx.controls.listClasses.BaseListData;
[Bindable]
/**
* Renderの有効性の設定
*
* @default "";
*/
public var inputFlg:Boolean = true;
import mx.controls.Label;
import mx.containers.GridItem;
import mx.containers.GridRow;
import mx.containers.Grid;
import mx.controls.TextInput;
import mx.controls.Alert;
public var aa:Number;
public var array:Array;
public var arr:Array ;
private var _listData:BaseListData;
public function get listData():BaseListData
{
return _listData;
}
public function set listData(value:BaseListData):void
{
_listData = value;
}
public function addComponet():void{
var obj:Object = new Object();
obj = array[0];
arr= obj.text as Array;
var arrNum:int = arr.length;
for(var i:int = 0; i<arrNum; i++){
var textInput:TextInput = new TextInput();
var hbox:HBox = new HBox();
hbox.height=26;
hbox.styleName="border";
textInput.height = 24;
textInput.width = 130;
textInput.maxChars = 8;
textInput.id = ""+i+"";
textInput.text = arr[i];
textInput.enabled = inputFlg;
textInput.addEventListener(Event.CHANGE,change);
textInput.styleName = "border1";
hbox.width = lableID.width
hbox.addChild(textInput);
lableID.addChild(hbox);
}
}
public function change(evt:Event):void{
var index:int = int(evt.target.id);
//Alert.show(evt.target.id);
arr[index] = evt.target.text;
// Alert.show("array[index]:"+array[index]);
}
override public function set data(value:Object):void
{
super.data = value;
}
]]>
</mx:Script>
<mx:VBox id="lableID" width="175" height="100%" verticalGap="0"
borderSides="top" borderThickness="1" verticalAlign="middle" >
</mx:VBox>
</mx:HBox>