2009-07-31 84 views
0

下面是我的代碼與數據網格交互的一部分...!Flex Datagrid查詢

這將列出特定節點的孩子,如果我刷新數據網格後點擊它..

但是,如果我在DataGrid上的空白處單擊我得到一個錯誤說

「的ReferenceError:錯誤#1069:在mx.controls.listClasses.ListBaseContentHolder中找不到屬性數據,並且沒有默認值。「

如何避免這種情況?

if(event.target.data.children!= null) { resultSet.removeAll(); var tempChildObj:ArrayCollection; tempChildObj = event.target.data.children as ArrayCollection; var childLength:int; childLength = tempChildObj.length;

 for(var i:int =0;i<childLength;i++) 
     { 

      resultSet.addItem(tempChildObj.getItemAt(i)); 

     } 

     resultSet.addItem(tempChildObj); 
    } 


} 

回答

1

什麼錯誤是告訴你的是,事件的target財產沒有一個在錯誤的情況下叫data財產。這是有道理的,因爲你點擊一個空行 - 一個空行不會包含任何數據。

什麼你要首先做的是檢查事件的target包含data屬性,你開始訪問的datachild屬性之前。無論是在下面的測試之一應該工作:

if(event.target.hasOwnProperty("data")) { 
    // rest of your code here 
} 

if(event.target.data) { 
    // rest of your code here 
}