티스토리 뷰

아주 간단한건대 DataGrid삭제시 처리 되는 내용을 자세히 몰라서 고생했다.



[Bindable]
   private var dp:ArrayCollection =  new
     ArrayCollection([
   { From: "customersupport@adobe.com", Subject: "Thank you for downloading ColdFusion 8",isSelected:false},
   { From: "Jack1", Subject: "Upload the content",isSelected: false},
   { From: "Jack2", Subject: "Upload the content",isSelected: false},
   { From: "Jack3", Subject: "Upload the content",isSelected: false},
   { From: "Jack4", Subject: "Upload the content",isSelected: false},
   { From: "Jack5", Subject: "Upload the content",isSelected: false},
   { From: "Jack6", Subject: "Upload the content",isSelected: false}
   ]);
  
 
  private function deleteRow():void {
   trace("DG 초기값 : " + dp.length);
   
   if(dp.length == 0) {
    Alert.show("삭제 가능한 목록이 없습니다.")
   }
   for(var i:int = 0;i < dp.length ;i++) {
    if(dg.dataProvider[i].isSelected == true){
     trace(i);
     dp.removeItemAt(i);
     i--;  // 이거 때문에 완전 고생했다 DataGrid의 바인딩된 Array값이 하나 지워질때마다 index값이 줄어 드는걸 모르고  이 구문을 안넣고 지웠으니 제대로 작동 할리가 없었다.-.-;; 간단한걸 하루 왠종일 찾았내.
    }
   }
  }

private function test(event:ListEvent):void {
   trace(dg.selectedIndex);
   trace(dg.dataProvider[dg.selectedIndex].isSelected);
   
  }

 
 
  
   
   
      
  
 


댓글