Посмотрите мой источник:
- Шаблон:
[код]
<mx:Script source="ListStatus.as" />
<!-- Template -->
<mx:DataGrid id="grid" width="100%" height="100%" doubleClick="editRecord();">
<mx:columns >
<mx:DataGridColumn width="30" resizable="false" draggable="false">
<mx:itemRenderer>
<mx:Component>
<mx:LinkButton icon="@Embed('assets/img/delete.png')" click="outerDocument.deleteRecord(event);" />
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Nome" dataField="name" />
<mx:DataGridColumn headerText="Nome de exibição" dataField="displayName" />
<mx:DataGridColumn headerText="Cor" dataField="color" />
</mx:columns>
</mx:DataGrid>
[/код]
- ActionScript:
[код] import fuel.Ajax; импортное топливо. import fuel.window.Window;
import mx.controls.Alert; import mx.events.ModuleEvent; import mx.modules.ModuleLoader;
общедоступный var win: Window;
/ ** * Конструктор * * Получить данные от контроллера турбо-передач * / public function init (): void {
showLoading (); Ajax.requestJSON ('/ access / status / getList', {}, function (obj: Object): void {hideLoading (); grid.dataProvider = obj.results;}); }
/ ** * Форма вызова для редактирования записи * / public function editRecord (): void {
try {
grid.selectedItem.id;
} catch(e:Error) {
Alert.show("Você deve selecionar um registro válido", "Atenção");
return;
}
var module:ModuleLoader = new ModuleLoader();
module.url = "access/CreateStatus.swf";
module.applicationDomain = ApplicationDomain.currentDomain;
module.addEventListener( ModuleEvent.READY, onModuleReady );
var title_bar:String = "Edição de Status (" + grid.selectedItem.id + ")";
if( this.window ){
win = this.window.openChild(title_bar, module, 410, 250);
} else {
win = (parentApplication as Admin).winManager.openWindow(title_bar, module, 410, 250);
}
}
/ ** * Вызов контроллера для удаления записи * / закрытая функция actionDeleteRecord (соответственно: объект): void {if (resp.detail == Alert.YES) {grid.enabled = false;
Ajax.requestJSON( "/access/status/delete", { 'id' : grid.selectedItem.id }, function( obj:Object ):void {
if (obj.error == false) {
Alert.show("Registro deletado com sucesso", "Confirmação");
} else {
Alert.show(obj.msg, "Erro");
}
init();
});
grid.enabled = true;
}
}
/ ** * Вызвать запрос на удаление записи * / public function deleteRecord (event: Event): void {Alert.show ("Esta operação NÃO poderá ser desfeita. \ NDeseja mesmo remover o status \" "+ grid.selectedItem.displayName +" \ "?", "Подтверждение", Alert.YES | Alert.NO, this, actionDeleteRecord); }
публичная функция onModuleReady (событие: ModuleEvent): void {
var loader: ModuleLoader = event.target как ModuleLoader;
var m:* = loader.child as IModule;
if( m ) m.addEventListener( Event.RENDER, function runModule(e:Event):void{
m.setId(grid.selectedItem.id);
m.window = win;
m.removeEventListener( Event.RENDER, runModule );
});
}; [/код]
Мне нужно установить фон строки, используя значение цвета, существующее в dataProvider.
Извините за мое незнание, это мой первый проект, использующий flex.
Спасибо!