2011-05-10 59 views
0

“stab”是一个tabnavigator,我喜欢在navigatorcontent中访问datagrid中的id。我试过getchildbyname不能,它似乎无法找到datagrid“nc1,nc2等”,并返回null。在navigatorcontent中获取id

private var pdg:String="nc"; 
     private function stabAdd():void { 
      var dg1:DataGrid = new DataGrid(); 
      var cn:NavigatorContent = new NavigatorContent(); 
      stab.addElement(cn); 
      cn.label = "New Tab"; 
      cn.name = "nct"+nu; 
      cn.id = "nct"+nu; 
      dg1.id = "nc"+nu; 
      dg1.name = "nc"+nu; 
      pdg = dg1.id; //set this as current datagrid 
      nu++; 

      var columns:Array = []; 
      var myDataGridColumn:DataGridColumn = new DataGridColumn("id"); 
      myDataGridColumn.headerText = "ID"; 
      myDataGridColumn.width = 40; 
      columns.push(myDataGridColumn); 
      myDataGridColumn = new DataGridColumn("username"); 
      myDataGridColumn.headerText = "Name"; 
      myDataGridColumn.width = 160; 
      ..... 
      dg1.columns = columns; 

      cn.addElement(dg1); 
      stab.selectedIndex = stab.numChildren-1; 
     } 
+0

我不喜欢'getChildByName()' - 尝试使用'container [“nc1”]'等等。 – Marty 2011-05-10 04:16:09

+0

我可以获得“容器”教程吗?我们似乎不知道。 – Jonyang 2011-05-10 04:59:13

+0

容器 - > ** DataGrid的父**。 – Marty 2011-05-10 05:05:12

回答

0

容器只是我的术语为父..如何只是将所有的DataGrids添加到数组。然后你可以按照如下ID搜索:

function findDataGrid(findID:String):DataGrid 
{ 
    var i:DataGrid; 
    for each(i in array) 
    { 
     if(i.id == findID) return i; 
    } 

    return null; 
} 
+0

这是我想到的,但是,当我想removeAll()datagrid内容它会返回ID无法找到。我仍然希望我可以通过层次结构方法访问它。 – Jonyang 2011-05-10 05:37:39