2016-03-30 13 views
-1

Ich versuche, ein Datagrid zu filtern, indem ich die Zeile lösche, wenn der Wert der Spalte nicht gleich meiner Eingabe ist ... Aber die if-Bedingung scheint nicht zu funktionieren ... Unten ist mein Code:as3 Zeile im Datagrid löschen, um Daten zu filtern

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"); 
    } 
    } 
} 

Beispieldaten:

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

Benutzereingabe: "John"

gewünschte Ausgabe:

John val1 val2 val3 
+0

Wo ist Ihr Code? – akmozo

+0

Was ist Ihre Frage? – Brian

Antwort

0

Sie haben einige kleine Probleme im Code:

  • DataGrid ist ein Klassenname, die Sie eine Instanz erstellen können, die Sie in Ihrem Code verwenden können, wie dies zum Beispiel:

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

    dann können Sie diese Instanz verwenden:

    for(var k:int = 0; k < data_grid.length; k++){ 
        // ... 
    } 
    
  • Ihre wow var sollte ein erklärtes String sein:

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

so der Code wie folgt sein:

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 --; 
    } 
} 

Hoffnung, die helfen können.

0

Sie müssen nicht einmal die Daten löschen mit dieser, wenn Sie die Daten filtern müssen und nicht löschen die Werte können Sie die Filterfunktion für die Array-Sammlung verwenden und Sie können es tun, versuchen Sie Googeln.

Verwandte Themen