Avatar billede lasserasch Juniormester
28. december 2006 - 15:56 Der er 12 kommentarer og
1 løsning

Oprette knapper ud fra resultat i SQL forespørgelse?

Hejsa.

Hurtigt spørgsmål.

Kan det lade sig gøre at oprette knapper på sin form ud fra antal resultater i en SQL forespørgelse?

F.eks. hvis jeg ville spørge til en SQL database og hente felterne : "Buttomname, Buttomtag, buttomheight, buttomwidth" ud.

Kan jeg så for hvert resultat oprette en knap på min form automatisk?

Og hvis ja, hvordan håndtere man så funktionskald efterfølgende.
Der skal vel knyttes en EventHandler til knappen for at man kan bruge den så ik'?


Jeg vil kalde samme funktion ved tryk på alle knapperne, men vil i TAG feltet for knappen angive en færdi som bruges i min funktion til at udføre nogle ting...


Er mit projekt helt håbløst eller kan det lade sig gøre?


Hvis ja, er der så en der vil give et eksempel! Også meget gerne fortælle hvordan man får bundet knappen til en tabcontrol i stedet for til selve formen!


/Lasse
Avatar billede kalp Novice
28. december 2006 - 15:59 #1
hvis der kun findes de der felter der kan du ligeså godt oprette dem og sætte visible til false på dem.

når du så kører dit resultat igennem efter din sql forespørgsmål kan du sætte den enkelte knap til visible
Avatar billede Syska Mester
28. december 2006 - 15:59 #2
Du kan bruge en Repeater ... og lave knapper etc i den .. og så bruge Eventen ItemCommand på repeatenren og hente id/data ud fra Argument ...
Avatar billede Syska Mester
28. december 2006 - 16:02 #3
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                    <ItemTemplate>
                        <li><asp:LinkButton Text='<%# Eval("Title") %>' CssClass="small-text-black" ID="LinkButton1" CommandArgument='<%# Eval("LiteratureID") %>' runat="server" /></li>   
                    </ItemTemplate>
                </asp:Repeater>

og i i koden:
    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        lblText.Text = teaser.GetTextById(int.Parse(e.CommandArgument.ToString()));
    }
Avatar billede lasserasch Juniormester
28. december 2006 - 16:05 #4
Mit "problem" er at det ikke er et fast sæt af knapper der skal placeres i min tabcontrol. Det kan være alt fra 1 - 50 - 60 stykker! Ved godt der måske findes andre veje, men vil gerne se om jeg kan få dette til at virke.

Jeg er ikke helt med omkring Repeater og Itemcommand buzzzz, kan du give et eksempel?
Jeg skal gerne have knapperne bundet til en tab i mit tabcontrol. Går ud fra at en knap som standard binder sig til min form. Hvordan gør jeg det?

/Lasse
Avatar billede lasserasch Juniormester
28. december 2006 - 16:06 #5
Ahhh... For langsom!

skal lige siges at det ikke er et website, men et program jeg har gang i! Er det så stadig samme fremgangsmåde?

/Lasse
Avatar billede Syska Mester
28. december 2006 - 16:07 #6
næsten ...

Der smider du bare din værdi ind i "Tag" og subscriber til den samme event, og caster sender til en button, og derfra kan du så hive din værdi ud ....

// ouT
Avatar billede lasserasch Juniormester
28. december 2006 - 16:08 #7
Hvilken class ligger repeater i? Kan ikke lige finde den!

/Lasse
Avatar billede Syska Mester
28. december 2006 - 16:08 #8
hvad mener du med at "binde" din buttons til en tabcontrol?

// ouT
Avatar billede Syska Mester
28. december 2006 - 16:09 #9
Repeater er en ASP.NET ting
Avatar billede lasserasch Juniormester
28. december 2006 - 16:10 #10
Jo, men så kan jeg jo ikke bruge din fremgangsmåde så vel?
Avatar billede Syska Mester
28. december 2006 - 16:14 #11
private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++)
            {
                Button b = new Button();
                b.Text = i.ToString();
                b.Tag = i.ToString();
                b.Click += new EventHandler(b_Click);
                flowLayoutPanel1.Controls.Add(b);
            }
        }

        void b_Click(object sender, EventArgs e)
        {
            Button b = sender as Button;
            if (b == null)
                return;

            label1.Text = "clicked button " + b.Tag.ToString();

        }
Avatar billede lasserasch Juniormester
28. december 2006 - 16:31 #12
Jepper.... Total logisk når man nu lige tænker sig lidt om! virker fint med et par små modifikationer! Tak for det...

Smid et svar for points!

/Lasse
Avatar billede Syska Mester
28. december 2006 - 16:33 #13
svar
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