Avatar billede trekkies Juniormester
22. august 2010 - 17:56 Der er 43 kommentarer og
1 løsning

dropdown funktion

Hej alle sammen

Jeg er ved at lave et lille program i C#, og skal bruge en slags dropdown funktion, hvor man vælger hvor mange tekst bokse der skal komme frem.

F.eks. hvis vil vælge 8 stk i dropdown boksen, kommer der 8 tekst bokse frem i programmet.

Ved at det er muligt i javascript, men er det også muligt i C#?

Håber at I kan hjælpe.
Avatar billede keysersoze Guru
22. august 2010 - 18:01 #1
ja, selvfølgelig - den store forskel er at javascript foregår på klienten og .NET på serveren, så du skal foretage et postback. Du kan se et simpelt eksempel fra MS her; http://support.microsoft.com/kb/317794 - det eneste du skal sikre dig i forhold til eksemplet fra MS, i hvert fald såfremt du skal have værdier ud fra tekstboksene igen, er at kontrollerne skal genskabes igen efter også andet postback og at kontrollerne skal have præcis samme ID'er igen.
Avatar billede Syska Mester
22. august 2010 - 19:23 #2
Nu skriver han "Program i C#", men det kan selfølgelig godt være at det er en web applikation.

Men omd et er det ene andet andet, så kan det lade sig gøre Trekies.

mvh
Avatar billede trekkies Juniormester
22. august 2010 - 20:05 #3
Det er til et program, så ved ikke om linket virker til det.
Avatar billede Syska Mester
22. august 2010 - 20:43 #4
Nu laver jeg normalt ikke løsning til folk her på eksperten, da spørgsmålet også er oprettet i en forkert kategori så.

Generelt set er det jo bare noget ala:

ComboBox hvor du kan vælger hvor mange TextBox der skal vises.
En knap til at "Lave dem", som hiver nummeret ud af din combox, og så bliver der lavet X antal textbox'e som bliver tilføjet et Panel.

Men hvad har du prøvet, så kan vi tage den derfra ...

mvh
Avatar billede lasserasch Juniormester
22. august 2010 - 20:49 #5
Altså en Windows applikation?

Det kan i så fald gøres ved at lægge et panel på din form. Til det panel kan du tilføje tekstbokse når noget vælges i din combobox/dropdown.

F.eks. sådan her:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
           
            for (int i = 0; i < int.Parse(comboBox1.SelectedItem.ToString()); i++)
            {
                int position = panel1.Controls.Count * 30;
                TextBox tb = new TextBox { Text = "Tekstbox nr. " + (panel1.Controls.Count + 1).ToString() };
                tb.Location = new Point(12, position);
                panel1.Controls.Add(tb);
            }
           
        }



Mvh.
Lasse
Avatar billede lasserasch Juniormester
22. august 2010 - 20:51 #6
Ahhh Buzzz,. Havde ikke set dit svar :-) Sorry, men løsningsforslaget er mere eller mindre det samme.

Mvh.
Lasse
Avatar billede keysersoze Guru
22. august 2010 - 21:06 #7
Der blev bare nævnt javascript, så gættede jeg på at applikationen var web. Idéen fra linket er i hvert fald det samme - det er bare en anden kontrol der skal benyttes.
Avatar billede trekkies Juniormester
22. august 2010 - 22:40 #8
Jeg logger af nu, og skal på arbejde de næste 2 dage, så kigger først på det på onsdag igen.
Avatar billede trekkies Juniormester
31. august 2010 - 09:21 #9
Undskyld ventetiden, har ikke haft tid til at kigge på tingene endnu, men skal nok skrive tilbage når jeg har set på det.
Avatar billede lasserasch Juniormester
17. september 2010 - 09:38 #10
Hvad blev løsningen her??

Mvh.
Lasse
Avatar billede trekkies Juniormester
26. september 2010 - 13:12 #11
Hej alle sammen

Undskyld ventetiden.

Jeg har nu brugt en del tid på dette, men kan ikke få den til at virke.

Jeg får denne fejl:
"Input string was not in a correct format."
Avatar billede keysersoze Guru
26. september 2010 - 22:15 #12
det må uden tvivl være en fejl i linje 37!

Lidt kode og en henvisning til hvor fejlen sker vil hjælpe - måske vil et debug-mærke også kunne fortælle en masse.
Avatar billede trekkies Juniormester
26. september 2010 - 22:37 #13
Visual Studio siger at det er i denne linie:
for (int i = 0; i < int.Parse(comboBox1.SelectedItem.ToString()); i++)

Hvor fejlen er.
Avatar billede Syska Mester
27. september 2010 - 09:33 #14
Din "comboBox1.SelectedItem" er ikke i det korrekte format, dvs den er nok "tom" ... og det vil give en exception.

Eventuelt brug:

int.TryParse(string input, out int placeHolder)
Avatar billede trekkies Juniormester
28. september 2010 - 16:51 #15
Min combobox er ikke tom, den viser mine oplysninger.

Prøver din løsning.
Avatar billede trekkies Juniormester
28. september 2010 - 17:28 #16
Lige meget hvad jeg gør, vil din løsning ikke gå igennem, Visual Studio sider at der er en fejl i linien.

Skal i byen om lidt, kommer herind senere i dag.
Avatar billede keysersoze Guru
28. september 2010 - 17:55 #17
Prøv med comboBox1.SelectedItem.Value.ToString()
Avatar billede Syska Mester
28. september 2010 - 19:47 #18
Kan du ikke høre det i "debug" ... og så finde ud af hvad den string indeholder som du prøver at parse til en int.
Avatar billede trekkies Juniormester
28. september 2010 - 20:50 #19
Nu siger den er der ikke er noget som hedder "Value".

Da "Value" ikke findes, vil den ikke "Debugges".
Avatar billede keysersoze Guru
28. september 2010 - 21:16 #20
Jeg kan ikke lige huske properties i hovedet og har ikke noget Visual Studio kørende - men lidt intellisense burde kunne give dig det rigtige resultat. Måske hedder den bare comboBox1.SelectedValue.
Avatar billede Syska Mester
28. september 2010 - 21:50 #21
SelectedValue & SelectedValue er der noget der hedder.

Men et skridt tilbage trekkies, og prøv at debug det, og se hvad SelectedItem og måske også hvad SelectedValue indeholder.

Den siger det ikke kan parses som en int, ergo er det som er i din liste ikke en int, og nu skal vi finde ud af hvad den indeholder.

Eventuelt lav et eksempel som genskaber dit problem 100%, så kan vi prøve at køre det og se hvad der går galt.

mvh
Avatar billede trekkies Juniormester
28. september 2010 - 22:00 #22
Jeg har  nu lavet koden om, som den var før.
Den kommer med fejlen igen.

Jeg henter oplysningerne i en access database, oplysningerne er gemt som "Notat".

Når at jeg "debugger", kører det fint, men når at jeg vælger noget i listen, så kommer fejlen.
Avatar billede Syska Mester
28. september 2010 - 22:06 #23
Yes.

Men ... hvad indeholder den værdi du bruger at "parse" til en int? ( den indeholder jo tydeligvis noget som ikke kan parses til en int )
Avatar billede trekkies Juniormester
28. september 2010 - 22:09 #24
Oplysningen fra db er kun tal, jeg har tallene fra 1 til 10, som jeg henter ind i dropdown listen.
Avatar billede Syska Mester
28. september 2010 - 22:16 #25
Tanke mæssigt er ideen god ... men der er 100 ting der kan gå galt.

Hvis du vil have vi skal hjælpe, så post din kode her eller lav et eksempel til os som viser fejlen ... og upload det et sted.

Hvis du ikke gør en af overstående 2 ting, er der intet vi kan gøre.

1 til 10, ja det er et tal. Men du får en fejl som siger den ikke kan lave det om til en int, ergo, må det som står i din dropdownbox ikke være et tal.

mvh
Avatar billede trekkies Juniormester
28. september 2010 - 22:26 #26
Her er noget af koden:
        private void combo_skuespiller_SelectedIndexChanged(object sender, EventArgs e)
        {

            for (int i = 0; i < int.Parse(combo_skuespiller.SelectedItem.ToString()); i++)
            {
                int position = groupBox4.Controls.Count * 30;
                TextBox tb = new TextBox { Text = "Tekstbox nr. " + (groupBox4.Controls.Count + 1).ToString() };
                tb.Location = new Point(12, position);
                groupBox4.Controls.Add(tb);
            }
        }

Det er koden som skulle lave boksene, ud fra det antal som er i dropdown boksen.
Avatar billede Syska Mester
28. september 2010 - 22:43 #27
Hvor er koden som fylder "combo_skuespiller" op ?
Avatar billede trekkies Juniormester
28. september 2010 - 22:47 #28
Den kommer her:
private void add_Load(object sender, EventArgs e)
{
this.skuespillerTableAdapter.Fill(this.skuespillerDataSet.skuespiller);
}
Avatar billede Syska Mester
28. september 2010 - 23:03 #29
Ja, så er det klart at overstående ikke virker.

Da dit SelectedItem er ikke et tal, men en row i: this.skuespillerDataSet.skuespiller

skuespiller må være en collection af en art ... du skal så caste dit object til den type. ( hvis jeg husker rigtigt )

Men du må også sætte nogen Binding properties et sted, altså hvor de angiver hvad din Combo box skal vise ...

mvh
Avatar billede trekkies Juniormester
28. september 2010 - 23:36 #30
Jeg har brugt den indbygget database funktion, som har genereret alle tingene til mig.
Jeg har kun sat den til at hente "skuespiller" fra databasen.


Logger af nu, men vender tilbage på torsdag, da jeg skal arbejde hele dagen i morgen.
Avatar billede Syska Mester
29. september 2010 - 00:30 #31
Netop af overstående grund er det nemmere hvis du kan lave en lille zip fil med projektet og upload et sted vi kan hente den.

Men ... dit SelectedItem er ikke et tal ... men et object, som så nok har nogen properties.

mvh
Avatar billede trekkies Juniormester
30. september 2010 - 20:55 #32
Jeg har ikke min hjemmeside mere, hvor kan jeg så uploade den henne?
Avatar billede trekkies Juniormester
30. september 2010 - 22:38 #33
Jeg skal på arbejde de næste 5 dage, og har derfor ikke så meget tid.
Jeg har min næste fri dag på onsdag, hvor at jeg kigger herind.
Avatar billede Syska Mester
01. oktober 2010 - 09:27 #34
http://www.2shared.com/ <- Der kan du uploade filer gratis.
Avatar billede trekkies Juniormester
06. oktober 2010 - 10:59 #35
Så har jeg endelig fri :)

Her er filen:
http://www.2shared.com/file/t_r_HgqO/dvd.html

Der er kode ord på, det er "eksperten" - uden ""
Avatar billede trekkies Juniormester
25. november 2010 - 11:56 #36
Hej alle sammen
Jeg har ikke hørt noget efter at jeg lå produktet ud på nettet, så jeg har selv leget lidt med problemet.

Jeg har denne kode:
        private void combo_skuespiller_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < int.Parse(combo_skuespiller.SelectedItem.ToString()); i++)
            {
                int position = groupBox4.Controls.Count * 30;
                TextBox tb = new TextBox { Text = "" + (groupBox4.Controls.Count + 1).ToString() };
                tb.Location = new Point(30, position);
                groupBox4.Controls.Add(tb);
            }
        }
Den skulle gerne lave en text box for mig, men den kom hele tiden med fejl.
Nu har jeg makeret nogle ting ud:
        private void combo_skuespiller_SelectedIndexChanged(object sender, EventArgs e)
        {
//            for (int i = 0; i < int.Parse(combo_skuespiller.SelectedItem.ToString()); i++)
//            {
                int position = groupBox4.Controls.Count * 30;
                TextBox tb = new TextBox { Text = "" + (groupBox4.Controls.Count + 1).ToString() };
                tb.Location = new Point(30, position);
                groupBox4.Controls.Add(tb);
//            }
        }

Så virker den fint, men den laver kun en box, og det er lige meget om jeg vælger 1 eller 5 i min combobox.

Er det nogle som kan hjælpe mig videre?
Avatar billede Syska Mester
25. november 2010 - 12:31 #37
fejl ????

Programmet der ikke kunne starte?
Windows der giver fejl ?
X der giver fejl ? ( indsæt selv et navneord i stedet for X )

Du bliver nød til at give os lidt mere information, får du nogen exceptions ? hvad lyder fejlen på ? .NET smider ingen fejl de kalder fejl.

mvh
Avatar billede Syska Mester
25. november 2010 - 12:34 #38
Hvad er værdien af "combo_skuespiller.SelectedItem"

Du virker rimelig sikker på det er en integer, er det ikke det, får du en FormatException.
Avatar billede trekkies Juniormester
25. november 2010 - 13:08 #39
Jeg har lagt en fejl meddelse her:
http://www.2shared.com/photo/7k3XncmJ/fejl.html

Jeg ved ikke om det er en integer, har også prøvet med andre, men intet virker.

Værdien i combo_skuespiller bliver hentet i en xml fil.
Det er tallene fra 1 til 20.
Avatar billede Syska Mester
25. november 2010 - 13:36 #40
Men når du får et fint break der ...

Kan du så ikke lige se hvad
combo_skuespiller.SelectedItem indeholder af værdi ... for den lader jo til at indeholde noget forkert.

Hvordan smider du items i din combobox ?

Jeg tror du skal bruge:
combo_skuespiller.SelectedValue i stedet for SelectedItem.

mvh
Avatar billede trekkies Juniormester
25. november 2010 - 13:47 #41
Mange tak for det, nu virker det.

Så mange timer med problemet, og så skulle der laves bare ændret lidt :)

Læg venligst et svar, så får du dem :)

MANGE TAK FOR DET....
Avatar billede Syska Mester
25. november 2010 - 14:10 #42
Heheh ...

Altid bare post en masse kode ... det siger mere end 1000 ord. Så kan vi nemmere følge hvad du prøver at gøre.

Her var det bindingen af dine ListItem's som manglede ...

mvh
Avatar billede Syska Mester
25. november 2010 - 14:10 #43
Ups, svar
Avatar billede trekkies Juniormester
25. november 2010 - 15:49 #44
Jeg ændrede koden til "SelectedValue" i stedet for "SelectedItem", derefter virkede det fint, ingen fejl kode :)

Mange tak for hjælpen....
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

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