2016-03-30 22 views
-1

我试图通过删除行来过滤数据列,如果列的值不等于我的输入...但if条件似乎不工作...下面是我的代码:as3删除DataGrid中的行以过滤数据

for(var k:int =0; k<DataGrid.length;k++){ 
    wew = DataGrid.getItemAt(k).Name.toString(); 
    if(txt_username.text != wew){ 
     trace("not equal"); 
     DataGrid.removeItemAt(k); // remove row if it does not equal to name input by user 
    } 
    else{ 
     trace("same"); 
    } 
    } 
} 

样本数据:

John val1 val2 val3 
Awts val1 val2 val3 
Awts val1 val2 val3 

用户输入: “约翰”

希望的输出:

John val1 val2 val3 
+0

你的代码在哪里? – akmozo

+0

你的问题是什么? – Brian

回答

0

你在你的代码中的一些小问题:

  • DataGrid是一个类的名字,你可以用它来创建你可以在你的代码中使用,这样例如一个实例:

    var data_grid:DataGrid = new DataGrid(); 
    addChild(data_grid); 
    

    那么你可以使用该实例:

    for(var k:int = 0; k < data_grid.length; k++){ 
        // ... 
    } 
    
  • wow VAR应该是一个声明的字符串:

    var wow:String = data_grid.getItemAt(k).Name.toString(); 
    

让你的代码可以是这样的:

for(var k:int = 0; k < data_grid.length; k++){ 
    var wew:String = data_grid.getItemAt(k).Name.toString(); 
    if(txt_username.text != wew){ 
     data_grid.removeItemAt(k); 
     k --; 
    } 
} 

希望能有所帮助。

0

你甚至不必删除数据的使用,如果你需要过滤数据,而不是删除值,你可以使用数组集合的过滤功能,你可以做到这一点,尝试谷歌搜索。