2016-03-30 5 views
-1

Im пытается отфильтровать datagrid, удалив строку, если значение столбца не равно моему вводу ... Но условие 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 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

вам даже не нужно удалять данные с помощью этого, если вам нужно отфильтровать данные и не удалять значения, вы можете использовать функцию фильтра для коллекции массива, и вы можете это сделать, попробуйте выполнить поиск в Интернете.

Смежные вопросы