Avatar billede Shasim Novice
02. maj 2006 - 11:38 Der er 18 kommentarer og
1 løsning

combobox og selectedItem

Jeg har en combobox som skal vises med en varierende værdi valgt. Så i mit script ville jeg jo gerne kunne fortælle præcis hvilken værdi, som skal være den valgte, ved at bruge selectedItem, men det vil ikke virke. Derimod kan jeg godt få selectedIndex til at virke - det er bare ikke lige så god en løsning for mig, fordi min combobox skifter indhold og dermed ændres pladsernes værdi.
Mine værdier er:
0.01
0.02
osv.

Findes der en måde at forvælge på, som virker på den faktiske værdi og ikke på pladsen?
Avatar billede webt Nybegynder
02. maj 2006 - 11:44 #1
Hejsa
Du kan bruge .data efter selectedItem for at få værdien:
selectedItem.data

Mvh
Martin
Avatar billede Shasim Novice
02. maj 2006 - 11:53 #2
Dejligt du også godt vil prøve at hjælpe hér :)
Hvis vi parrer mit andet spørgsmål med dette, så går det i al sin enkelthed ud på at få vist den nuværende værdi i mit aktive mc som den valgte værdi i comboboxen når mc'et aktiveres, hvis du forstår...
men jeg kan heller ikke få det til at virke med selectedItem.data
Avatar billede webt Nybegynder
02. maj 2006 - 12:03 #3
Heh jeg havde slet ikke set det var dig :D

Jeg sidder til undervisning uden adgang til flash pt - men hvis der ikke er andre der har svaret i aften så er jeg på igen.

Har set nogen gøre sådan her:

var sItem = combobox.data[combobox.selectedIndex];

Men om det virker - tjae prøv :)
efterhånden et års tid siden jeg har arbejdet med flash, men vender frygteligt tilbage i aften

Mvh
MArtin
Avatar billede Shasim Novice
02. maj 2006 - 12:06 #4
Tak skal du ha'
Avatar billede Shasim Novice
02. maj 2006 - 14:04 #5
Nu har jeg fået den til at virke delvist, men efter lidt tid begynder den at bytte om på data-værdierne!!! Så når jeg trykker på 0.02 sender den f.eks. 0.03 afsted...

Mærkeligt ikk'?
Avatar billede webt Nybegynder
02. maj 2006 - 20:16 #6
Hmm underligt, følgende virker 100% hos mig:

var comboData:Array=new Array({label:"Et", data:1}, {label:"To", data:2}, {label:"Tre", data:3});
combo.dataProvider=comboData;
combo.changeHandler=function() {
    trace(this.selectedItem.data);
};

Mvh
Martin
Avatar billede Shasim Novice
03. maj 2006 - 09:10 #7
Nu har jeg fået skruet mit endelige script sammen, og det virker fint nu med korrekt trace af dataskrivning. I den funktion som fylder comboboxen med de tilladte værdier, har jeg så prøvet at sætte selectedItem.data ind til sidst, men...

//bestem indhold i combobox
function set_ct_combo() {
    ct_combo.removeAll();
    if ((_root.bredde == "3,0") && (_root.profil == 1)) {
        ct_combo.addItem("0.01", 0.01);
        ct_combo.addItem("0.02", 0.02);
        ct_combo.rowCount = 2;
    }
osv.
osv.
osv.
}
    ct_combo.selectedItem.data(_root["ctStr_brill"+aktiv]);
}

... det virker ikke. Hvad gør jeg galt?
Avatar billede webt Nybegynder
04. maj 2006 - 06:46 #8
Ikke helt sikker på hvad det er den skal gøre.....
Avatar billede Shasim Novice
04. maj 2006 - 09:06 #9
Den skal initialisere comboboxen med de værdier som er tilladt i forhold til
var bredde
og
var profil
Og til sidst skal den vise hvilken værdi som det aktuelle mc har lige nu. Disse oplysninger gemmer jeg i
var ctStr_brill1 = 0.01; //en var pr. mc.
Jeg vil gerne ha' at comboboxen skal læse værdien i var'en for det aktuelle mc, og vise denne værdi i listen.
Forstår du?
Avatar billede Shasim Novice
05. maj 2006 - 08:17 #10
Okay webt... har du opgivet?
Avatar billede webt Nybegynder
05. maj 2006 - 12:05 #11
Nej nej bare haft travlt - sorry :)

Så altså hvis root.ctStr_brill1=0.01 skal 0.01 være det valgte i comboboxen?
Avatar billede Shasim Novice
05. maj 2006 - 12:33 #12
Ja
Avatar billede webt Nybegynder
05. maj 2006 - 12:37 #13
Ja men så kan det her evt bruges:

(omskrevet til AS2.0)
//Test variabler så vi kan se om det virker
var bredde:Number = 3.0;
var profil:Number = 1;
var ctStr_brill1:Number = 0.01;
var aktiv:Number = 1;
//test variabler slut
var set_ct_combo:Function = function () {
    ct_combo.removeAll();
    if ((_root.bredde == 3.0) && (_root.profil == 1)) {
        ct_combo.addItem({data:0, label:"0"});
        ct_combo.addItem({data:0.01, label:"0.01"});
        ct_combo.addItem({data:0.02, label:"0.02"});
    }
    //løkke der løber igennem combobox værdierne og hvis den finder en der passer på _root.ctStr_brill+aktiv sætter den denne til at være valgt
        for (var i:Number = 0; i<=ct_combo.rowCount-1; i++) {
        if (ct_combo.getItemAt(i).data == _root["ctStr_brill"+aktiv]) {
            ct_combo.selectedIndex = i;
        }
    }
};
set_ct_combo(); //kald funktionen

sådan set det eneste du skal bruge ekstra er for løkken det andet har du som sådan ingen grund til at ændre her kommer en forklaring af et par af metoderne i løkken.

ct_combo.rowCount giver antal rækker indsat i comboboxen grunden til vi trækker en fra er at comboboxens index starter på 0
ct_combo.getItemAt(i) henter det aktuelle row ud
ct_combo.selectedIndex=i sætter det valgte index til i

Mvh
Martin
Avatar billede Shasim Novice
05. maj 2006 - 14:14 #14
Tak for det - efter noget brokkel ser det ud til at virke efter hensigten. Smid et svar :)
Avatar billede webt Nybegynder
05. maj 2006 - 14:22 #15
Så lidt glad for at kunne hjælpe :) - her kommer et svar

Fortsat god sommerdag til dig
Martin
Avatar billede Shasim Novice
05. maj 2006 - 14:41 #16
Tak i lige måde

:)Shanne
Avatar billede webt Nybegynder
05. maj 2006 - 19:51 #17
Hej igen,
Du skal lige huske at acceptere svar så vi kan få lukket spørgsmålet :)

Fortsat god aften
Martin
Avatar billede Shasim Novice
08. maj 2006 - 08:20 #18
Skal jeg skam nok, men jeg har tilladt mig at holde fri i weekenden. Værs'go så
Avatar billede Shasim Novice
08. maj 2006 - 08:22 #19
Det gik åbenbart ikke igennem første gang...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB