Actionscript 3 数据网格内的AS3组合框-垂直滚动
我正在做一个需要在我的数据网格中使用组合框的项目。很难找到任何关于这个案例的有价值的教程。 我已经创建了我的类:Actionscript 3 数据网格内的AS3组合框-垂直滚动,actionscript-3,datagrid,combobox,scroll,cellrenderer,Actionscript 3,Datagrid,Combobox,Scroll,Cellrenderer,我正在做一个需要在我的数据网格中使用组合框的项目。很难找到任何关于这个案例的有价值的教程。 我已经创建了我的类: public class MyCellRender extends ComboBox implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; protected var _selected:Boolean
public class MyCellRender extends ComboBox implements ICellRenderer {
protected var _data:Object;
protected var _listData:ListData;
protected var _selected:Boolean;
private var _selectedItem:Object;
private var _firsTime:Boolean;
private var _tempArray:Object;
public static var _stage:Object;
public function MyCellRender():void {
super();
this.addEventListener(Event.CHANGE, onSelItem);
_firsTime = true;
}
.
.
.
public function set data(value:Object):void {
_data = value;
if(!_tempArray){
_tempArray = new Array();
for (var i:uint = 0; i < _data.combobox.groups.length; i++)
_tempArray.push( { label : _data.combobox.groups[i] } );
}
if (!_selected) {
var _dp:DataProvider = new DataProvider(_tempArray);
this.dataProvider = _dp;
}
if (_firsTime) {
_firsTime = false;
_selectedItem = _tempArray[_data.combobox.current];
}
var id:int = _tempArray.indexOf(_selectedItem);
_data.combobox.current = id;
this.selectedItem = _selectedItem;
_stage.dataGrid.dispatchEvent(new DataGridEvent(DataGridEvent.ITEM_EDIT_END));
}
private function onSelItem(e:Event):void
{
_selectedItem = (e.target as ComboBox).selectedItem;
}
在dataGrid、dataProvider和我需要上下滚动的项目过多之前,一切都很好。我的带有组合框的列以随机的方式呈现选定的项目和可能的组。例如,如果在可见数据网格区域的底部有一个带有选定值“ABC”的组合框,并且我向下滚动以便可以看到更多的项目,则底部的项目(现在完全不同的行)具有选定值“ABC”。有人知道如何解决这个问题吗??干杯我感觉这不是你的渲染器,而是你如何设置数据提供程序。我的组合框或整个数据网格的数据提供程序??我忘了添加combobox中每个单元格的数据不是常量,它可能会被更改,因此我需要“简单方法”来调整每个单元格combobox数据提供程序。例如,我有两个数据网格,一个叫做Items,第二个叫做ItemsGroups。每次我向ItemsGroups添加新行时,Items dataGrid中column group中的所有组合框都需要更新,因此可以选择刚刚添加的组。我的方式允许我这样做,但我仍然不知道如何处理滚动。我还注意到,combobxes中具有错误值的单元格通常具有正确的数据提供程序-我已经基于带有ComboBox的列生成了一个XML,并检查了值是否等于中所示的值dataGrid-答案是否定的。。。。请任何人,有什么想法吗?
public var _current:int;
public var _groups:Array;