在没有运气的情况下搜索了 looooong 和努力:
我需要在数据网格的列中放置一个组合框。用户只需要从现有的组合框项目中选择一个值。我知道我需要使用自定义单元渲染器。请在下面查看我当前的尝试。
此尝试成功地将组合框插入到数据网格中,但组合框中没有任何数据。事实上,当我点击datagrid中的combobox时,它和舞台上没有dataProvider的普通combobox是一样的。换句话说,它甚至没有打开。
因此,我需要知道如何修改我的 cellrenderer 以正确地将数据添加到组合中,并在从组合框中选择值时接受用户所做的更改。
任何帮助将不胜感激!请注意,我使用的是 AS3而不是 AS2 而不是 Flex。
包裹 {
import fl.controls.ComboBox;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
import flash.events.Event;
import fl.data.DataProvider;
public class ComboBoxCell extends ComboBox implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;
private var _selected:Boolean;
private var _mycombo:ComboBox = new ComboBox();
public function ComboBoxCell() {
_mycombo.addItem( { label:"MasterCard", data:0 } );
_mycombo.addItem( { label:"Visa", data:1 } );
_mycombo.addItem( { label:"American Express", data:2 } );
trace("drawn");
}
public function set data(d:Object):void {
_data = d;
}
public function get data():Object {
return _data;
}
public function set listData(ld:ListData):void {
_listData = ld;
}
public function get listData():ListData {
return _listData;
}
public function setMouseState(state:String):void{
}
public function get selected():Boolean{
return _selected;
}
public function set selected(value:Boolean):void{
_selected = value;
}
}
}