您的项目渲染器实际上是一个不同的组件,因此如果您使用 this 关键字调度它们,则其他单元格/项目渲染器不会看到它们。
可能比您预期的要多一些,但这就是您完成类似事情的方式
1)您将需要创建一个自定义事件,您可以使用该事件传递行号。像这样的东西会起作用:
package
{
import flash.events.Event;
public class EditRowEvent extends Event
{
public function EditRowEvent(type:String, rowEditingIn:Number, bubbles:Boolean=false, cancelable:Boolean=false)
{
rowEditing = rowEditingIn;
super(type, bubbles, cancelable);
}
public var rowEditing : Number;
}
}
2)您需要在编辑它时将其发送到所有项目渲染都可以看到的东西。类似于父网格的东西:
DataGrid(this.parentDocument).dispatchEvent( new EditRowEvent( 'beginEdit', this_renderers_row ) );
3)您还需要在父级上监听此事件(在初始化项目渲染器时执行此操作):
protected function onCreationComplete(event:FlexEvent=null):void
{
DataGrid(this.parentDocument).addEventListener( 'beginEdit' , handleEditOnRow );
}
4) 处理在该特定项目渲染器的行上开始编辑时您想要发生的事情
public function handleEditOnRow ( event : EditRowEvent ) : void {
if( this_renderers_row == event.rowEditing ){
// code to execute when someone starts editing this row!
}
}