我试图通过删除行来过滤数据网格,如果列的值不等于我的输入...但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
答案 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 --;
}
}
希望可以提供帮助。