as3删除datagrid中的行以过滤数据

时间:2016-03-30 13:54:27

标签: actionscript-3 flash

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

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

用户输入:&#34; John&#34;

期望的输出:

John    val1   val2   val3

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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 --;
    }
} 

希望可以提供帮助。