Lord_RDR 0 Denunciar post Postado Novembro 21, 2011 Bom dia a todos, tudo bem? Comecei um estudo a respeito de datagrids no Flash e estou me interessando bastante pelo assunto. Porém, tenho uma dúvida que venho tentando solucionar sem sucesso, e que se alguem puder me ajudar eu serei muito grato. A dúvida é a seguinte: "Tenho uma data grid com 3 colunas(c1,c2 e c3), e gostaria de deixar apenas a c1 como editavel, isso é possivel? Conheco o comando dataGrid.editable = true, porem gostaria de limitar a edição apenas na coluna 1." Desde já agradeço! Bom dia! Compartilhar este post Link para o post Compartilhar em outros sites
Lord_RDR 0 Denunciar post Postado Novembro 23, 2011 Gostaria de informar que resolvi parte do problema. Definindo tabelas separadas e adicionando todas elas em um mc. Entendo que é gambiarra. Mas por hora sanou o problema. Eu teria apenas mais uma pergunta, e se alguem puder me ajduar serei muito grato. Estou tentando utilizar a opção "labelFunction = uma funcao", atraves de um objeto datagrid. Porem, ocorre um erro dizendo que´: "TypeError: Error #1006: value não é uma função." Segue o código caso alguem possa me ajudar: import fl.controls.DataGrid; import fl.controls.ScrollPolicy; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; import fl.controls.dataGridClasses.DataGridCellEditor; import flash.text.TextFormat; import flash.text.TextFormatAlign; import fl.events.DataGridEvent; import fl.events.ListEvent; import flash.events.Event; import fl.controls.listClasses.ListData; var i:uint; var totalRows:uint = 16; var dp:DataProvider = new DataProvider(); for (i = 0; i < totalRows; i++) { dp.addItem({col1:getRandomNumber(), col2:getRandomNumber(), col3:getRandomNumber(), col4:getRandomNumber()}); } var c1:DataGridColumn = new DataGridColumn("col1"); c1.sortOptions = Array.NUMERIC; var c2:DataGridColumn = new DataGridColumn("col2"); c2.sortOptions = Array.NUMERIC; var c3:DataGridColumn = new DataGridColumn("col3"); c3.sortOptions = Array.NUMERIC; var dg1:DataGrid = new DataGrid(); var dg2:DataGrid = new DataGrid(); var dg3:DataGrid = new DataGrid(); dg1.addColumn(c1); dg1.dataProvider = dp; dg1.move(10, 10); dg1.setSize(200, 300); addChild(dg1); dg1.editable = true; dg1.addEventListener(DataGridEvent.ITEM_EDIT_END,_verificaItemEditado); function getRandomNumber():Number { return Math.random() * 100; } function currencyFormatter(data:Object, column:DataGridColumn):String { return "$" + data[column.dataField].toFixed(2); } function _verificaItemEditado(e:DataGridEvent) { var dg:DataGrid = e.currentTarget as DataGrid; var cellEditor:DataGridCellEditor = dg.itemEditorInstance as DataGridCellEditor; var listData:ListData = cellEditor.listData; trace("After Edit: " + cellEditor.text); dg.labelFunction = currencyFormatter; } Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Novembro 29, 2011 quando ao primeiro problema, de apenas uma coluna editável, basta setar o 'dataGrid.editable = true' isso faz todas as colunas editáveis, ai você precisa setar as colunas que você não quer que sejam editáveis e seta-las: 'coluna.editable = false' é isso quando ao segundo problema, a propriedade 'labelFunction' é da DataGridColumn e não da DataGrid []´s Compartilhar este post Link para o post Compartilhar em outros sites