Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lord_RDR

Colunas Editaveis - DATAGRID

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.