checkBox em datagrid

1 resposta
DBR

Olá, estou com um problemasso, ou nao. esotu fazendo um controle de presença de alunos, tenho um datagrid com uma lista de alunos, para cada aluno tem um checkbox na coluna ao lado que sera marcado se o aluno estiver presente. Para cada linha desse datagrid eu estou tentando criar um objeto e salvar no bando fazendo um for até o .length da lista que popula o grid. Mas eu nao estou conseguindo fazer isso...Por favor me ajudem, preciso para amanha isso.

este é meu datagrid:
<mx:DataGrid x="10" y="64" width="95%" height="184" id="dgrTurma" dataProvider="{listAlunos}">
				<mx:columns>
					<mx:DataGridColumn headerText="Aluno" dataField="aluno">
						<mx:itemRenderer>
							<mx:Component>
								<mx:Label text="{data.aluno.nome}"/>
							</mx:Component>
						</mx:itemRenderer>
					</mx:DataGridColumn>
					<mx:DataGridColumn headerText="Presença" width="65" dataField="presenca" editorDataField="selected" editable="true" rendererIsEditor="true">
						<mx:itemRenderer>
							<mx:Component>
								<mx:VBox width="20" verticalAlign="middle" horizontalAlign="center">
									<mx:CheckBox id="check" name="checkP"/>
								</mx:VBox>
							</mx:Component>
						</mx:itemRenderer>
					</mx:DataGridColumn>
					
				</mx:columns>
			</mx:DataGrid>

e este o método que manda para o java, la ele grava:

private function salvarEvent():void{
	
	for(var i:int = 0; i < listAlunos.length; i++){
		dgrTurma.selectedIndex = i;
		
		frequencia = new Frequencia;
		frequencia.id = Number(addId.text);
		frequencia.data = addData.fullText;
		frequencia.aluno = dgrTurma.selectedItem.id as Aluno;
		frequencia.presenca = dgrTurma.selectedItems.valueOf();
		frequencia.turma = cbTurmasDisponiveis.selectedItem.id as Turma;
		frequencia.historico = addHistorico.text;
		Servicos.salvarFrequencia(frequencia);
	}
	

}

1 Resposta

andre07041989

Não sei se conseguiu resolver, mas aqui vai uma solução para o seu problema:

<fx:Script>
		<![CDATA[

			protected function testeP(event:FlexEvent):void { // carregue o dataProvider do seu dataGrid com o array de objeto  abaixo e teste como vc poderá
			//proceder, com relação ao seu problema
				var objeto:Object = new Object();
				objeto.desc = "Joao";
				objeto.isSelected = true;
				var arraY:ArrayCollection = new ArrayCollection();
				arraY.addItem(objeto);
				
				objeto = new Object();
				objeto.desc = "Pedro";
				objeto.isSelected = false;
				arraY.addItem(objeto);
				dgrTurma.dataProvider = arraY;
			}
			private function salvarEvent(event:MouseEvent):void{  
				for each ( var objeto:Object in dgrTurma.dataProvider) {
					Alert.show(objeto.isSelected + "  " + objeto.desc,"OK");
				}				
			}
		]]>
	</fx:Script>
	
	<mx:DataGrid x="10" y="64" width="95%" height="184" id="dgrTurma" dataProvider="{}">  
		<mx:columns>  
			<mx:DataGridColumn headerText="Aluno" dataField="desc">  
				<mx:itemRenderer>  
					<fx:Component>  
						<mx:Label text="{data.desc}"/>  
					</fx:Component>  
				</mx:itemRenderer>  
			</mx:DataGridColumn>  
			<mx:DataGridColumn headerText="Selected Campo" width="65"  dataField="isSelected" editorDataField="selected" editable="true" rendererIsEditor="true">  
				<mx:itemRenderer>  
					<fx:Component>  
						<mx:CheckBox selectedField="isSelected" selected="{data.isSelected}" change="checkbox_changeHandler(event)">
							<fx:Script>
								<![CDATA[									
									protected function checkbox_changeHandler(event:Event):void
									{
										if (data.isSelected == true) {
											data.isSelected = false;
										} else {
											data.isSelected = true;
										}
									}
									
								]]>
							</fx:Script>
						</mx:CheckBox>							
					</fx:Component>  
				</mx:itemRenderer>  
			</mx:DataGridColumn>  
			
		</mx:columns>  
	</mx:DataGrid>
	<mx:Button click="salvarEvent(event)" label="teste" id="testeBotao"/>

:lol:
Veja se resolve, não se esqueça de dizer se resolveu o seu problema.

Criado 29 de novembro de 2011
Ultima resposta 1 de dez. de 2011
Respostas 1
Participantes 2