Grid Flex

2 respostas
CristianPalmaSola10

E ai galera

estou desenvolvendo uma aplicacao em flex
que tem dois campos onde o usuario ira informa valores(numeros) e com esses numeros eu redimensiona uma dataGrid so as colunas, e o array
que é o dataProvider da grid, teria que ser redimensionado, ou seja teria que limpa-lo e gerar valor para ele.
Mas como fazer isso, eu precisaria ter mais de um objeto dentro de cada linha do array mas teria q o faze-lo dinamicamente, conforme o tamanho
que o usuario escolher

alguem teria alguma ideia para me ajudar a gerar esse array

???
Abraco

2 Respostas

E

coloca todo o codigo que vc fez aii

CristianPalmaSola10
<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			import mx.collections.ArrayList;
			import mx.controls.List;
			
			[Bindable]
			public var numColunas : Object = 3;
			
			[Bindable]
			public var numLinhas : Object = 3;
			
			[Bindable]
			public var valores : ArrayCollection = new ArrayCollection([
				{col1 : 0.0, col2 : 0.0, col3 : 0.0},
				{col1 : 0.0, col2 : 0.0, col3 : 0.0},
				{col1 : 0.0, col2 : 0.0, col3 : 0.0}]);
			
			public function gerarValores() : void
			{

			}
			
			public function gerarColunasLinhasGrid() : void
			{
				var array : Array = new Array();
				var _col : int = int(numColunas);
				
				gerarValores();
				
				for(var i : int = 1; i ><= _col; i++)
				{
					var coluna : DataGridColumn = new DataGridColumn();
					coluna.headerText = "col" + i;
					coluna.dataField = coluna.headerText;
					array.push(coluna);
				}
				
				grid1.columns = array;
			}
			
			public function exibeValores() : void 
			{
				var s :String = new String();
				for(var i:int = 0; i < valores.length; i++)
				{
					for(var r:int = 0; r < grid1.columns.length; r++)
					{
						if(valores.getItemAt(i).col+r == null)
						{
							s += "@";
						}
						else
						{
							s += valores.getItemAt(i).col+r + "  ";
						}
					}
					s += "\n";
				}
				Alert.show(s);
			}
			
		]]>
	</fx:Script>
	
	<mx:Canvas width="100%" height="100%">
		
		<mx:VBox height="100%" width="60%" textAlign="center" verticalAlign="middle">
			
			<mx:Canvas width="100%" height="20%">
				
				<mx:Form width="100%" height="20%">
					
					<mx:FormItem label="Numero Colunas.:" required="true">
						<s:TextInput text="@{numColunas}"/>
					</mx:FormItem>
					
					<mx:FormItem label="Numero Linhas.:" required="true">
						<s:TextInput text="@{numLinhas}"/>
					</mx:FormItem>
					
					<s:Button label="Atualizar Tela" width="250" styleName="botao" click="{gerarColunasLinhasGrid()}"/>
					
				</mx:Form>
				
			</mx:Canvas>
			
			<mx:Canvas width="100%" height="40%">
				
				<mx:DataGrid id="grid1" width="100%" height="100%" editable="true" dataProvider="{valores}">
					<mx:columns>
						<mx:DataGridColumn headerText="Col1" dataField="col1"/>
						<mx:DataGridColumn headerText="Col2" dataField="col2"/>
						<mx:DataGridColumn headerText="Col3" dataField="col3"/>
					</mx:columns>
				</mx:DataGrid>
				
			</mx:Canvas>
			<s:Button label="Exibir Valores" click="exibeValores()"/>
			
		</mx:VBox>
		
	</mx:Canvas>
	
</s:Application>
Criado 22 de outubro de 2011
Ultima resposta 22 de out. de 2011
Respostas 2
Participantes 2