#apache-flex #actionscript
#apache-гибкий #actionscript
Вопрос:
«Stab» — это tabnavigator, мне нравится получать доступ к идентификатору в navigatorcontent, который является datagrid. Я пытался getchildbyname
, но, похоже, не могу найти datagrid «nc1, nc2 и т.д.» И вернуть null.
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;
}
Комментарии:
1. Мне не нравится
getChildByName()
— попробуйте вместо этого использоватьcontainer["nc1"]
etc.2. Могу ли я получить руководство по «контейнеру»? Похоже, нам это неизвестно.
3. контейнер -> родительский элемент DataGrid.
4. о, извините, я все еще не могу его получить. Можете показать мне код?
5. родительским элементом datagrid является cn, который является NavigatorContent, но в нем отображается только «содержит», но не «контейнер»
Ответ №1:
Контейнер — это просто моя терминология для обозначения родительского элемента.. Как насчет того, чтобы просто добавить все ваши DataGrids в массив. Затем вы можете выполнять поиск по идентификатору, например:
function findDataGrid(findID:String):DataGrid
{
var i:DataGrid;
for each(i in array)
{
if(i.id == findID) return i;
}
return null;
}
Комментарии:
1. Это то, о чем я думаю, но, когда я хотел удалить все () содержимое datagrid, оно вернет идентификатор, который не может быть найден. Я все еще надеюсь, что смогу получить к нему доступ методом иерархии.