Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-10-2003, 14:43   #1 (permalink)
Neuer User
 
Benutzerbild von sascha wenning
 
Registriert seit: Jun 2001
Ort: NRW
Beiträge: 357
DataProvider.sortItemsBy()

In einem DataGrid sortiere ich verschiedene Spalten nach Klick auf eine Spaltenüberschrift.

Die alphabetische Sortierung ist defaultmäßig Case-Sensitive.
Das bedeutet er sortiert erst A-Z und dann a-z.

Um das "insensitively" zu machen bietet die Doku ein Option Flag.
myDP.sortItemsBy(fieldName, order, [optionsFlag])

The following are possible values for optionsFlag:
Array.CASEINSENSITIVE—sorts case insensitively.

Nun habe ich Probleme, diese Option zu nutzen, so geht es nicht:
MyGrid.dataProvider.sortItemsBy("Betreff", "ASC", "CASEINSENSITIVE")

Hat das schon jemand ans Laufen gebracht?
Danke,
Sascha
sascha wenning ist offline   Mit Zitat antworten
Alt 10-10-2003, 15:57   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Schau dir mal die Doku zu Array.sort an. Da muesste das erklärt sein.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 26-02-2004, 14:25   #3 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
oha der thread ist ja schon etwas älter, aber ich hänge da auch irgendwie.

sascha, hast du das problem gelöst?
bei mir gehts um Zahlensortierung
wenn ich das hier:
ActionScript:
  1. grid.addColumn("Nr");
  2. grid.addColumn("Titel");
  3. for (var i = 0; i<22; i++) {
  4.     grid.addItem({Nr:i, Titel:"Titel "+i});
  5. }
über die headerbuttons sortieren will, wird immer nach string sortiert, was in der ersten spalte nun garkeinen sinn macht.

erster gedanke war:
ActionScript:
  1. obj = {};
  2. obj.headerRelease = function(event) {
  3.     var col = grid.getColumnAt(event.columnIndex);
  4.     if (col == 0) {
  5.         grid.sortItemsBy("Nr", function (a, b) {
  6.             if (a<b) {
  7.                 return -1;
  8.             } else if (a>b) {
  9.                 return 1;
  10.             } else {
  11.                 return 0;
  12.             }
  13.         });
  14.     }
  15. };
  16. grid.addEventListener("headerRelease", obj);
aber das funktioniert so garnicht


ich hasse halbfertige dokus


gruß
michael

Geändert von michael (26-02-2004 um 14:26 Uhr)
michael ist offline   Mit Zitat antworten
Alt 26-02-2004, 18:27   #4 (permalink)
Neuer User
 
Benutzerbild von sascha wenning
 
Registriert seit: Jun 2001
Ort: NRW
Beiträge: 357
hi gutknut,

ich habe einen ersten Ansatz:

1. Platziere ein Grid auf der Bühne (Instanzname: myGrid)
2. Kopiere folgenden Code in Frame 1:

ActionScript:
  1. //VERFUEGBARE SORTIEROPTIONEN
  2. //• 1 or Array.CASEINSENSITIVE
  3. //• 2 or Array.DESCENDING
  4. //• 4 or Array.UNIQUE
  5. //• 8 or Array.RETURNINDEXEDARRAY
  6. //• 16 or Array.NUMERIC
  7.  
  8. myItems = [];
  9. myItems.push({vorname:"Peter", nachname:"maffay", alter:75});
  10. myItems.push({vorname:"Uschi", nachname:"Glas", alter:93});
  11. myItems.push({vorname:"Bata", nachname:"Ilic", alter:103});
  12. myItems.push({vorname:"Rudi", nachname:"tusch", alter:5});
  13. myItems.push({vorname:"Karl", nachname:"Dall", alter:80});
  14.  
  15. myGrid.dataProvider = myItems;
  16.    
  17. var meinListener = new Object();
  18. meinListener.headerRelease = function(event) {
  19.     if(event.columnIndex == 2){
  20.         myGrid.sortItemsBy("alter", 16)
  21.     }
  22. };
  23. myGrid.addEventListener("headerRelease", meinListener);

Wenn du nun auf "Alter" klickst wird vernünftig sortiert.
Allerdings muss das Alter als numeric reinkommen.

Dann musst du noch ein bisschen fummeln, damit beim 2. Klick das ganze absteigend sortiert wird.

Es geht bestimmt noch einfacher und schneller...

Soweit erstmal,
Sascha
sascha wenning ist offline   Mit Zitat antworten
Alt 26-02-2004, 18:48   #5 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
ah, das sieht doch schonmal gut aus, ich fummel moregn dran weiter, thx
michael ist offline   Mit Zitat antworten
Alt 26-02-2004, 21:40   #6 (permalink)
Neuer User
 
Benutzerbild von sascha wenning
 
Registriert seit: Jun 2001
Ort: NRW
Beiträge: 357
Ein kleiner Nachtrag noch:

Ich meine in Erinnerung zu haben, dass man wesentlich komfortabler sortieren kann, wenn man das ganze über ein DataSet abwickelt.

Da gibt es dann Möglichkeiten mit dataSet.addSort und auch Filtern ist mit dataSet.filterFunc möglich.
sascha wenning ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele