Avatar billede hojgaard Nybegynder
20. januar 2005 - 09:57 Der er 4 kommentarer og
1 løsning

Se hvilken knap der blev klikket på

Hej eksperter,

Jeg har brug for at kunne se hvilken knap en bruger har klikket på. Noget i retning af:

private void Page_Load(object sender, System.EventArgs e)
{
    if (knap1.Clicked == true)
        ...
    else if (knap2.Clicked == true)
        ...
    else
        ...
}

Er det muligt?
Avatar billede burningice Nybegynder
20. januar 2005 - 12:11 #1
er dine knapper statiske eller dynamiske?

Hvis de er statiske kan du gøre sådan her:

void buttonClick(object sender, EventArgs e) {
  Button b = (Button)sender;

  Response.Write("du klikkede på knappen"+ b.Id);
}


<asp:button id="knap1" runat="server" onClick="buttonClick" Text="Knap 1" /> <br />
<asp:button id="knap2" runat="server" onClick="buttonClick" Text="Knap 2" /> <br />
<asp:button id="knap3" runat="server" onClick="buttonClick" Text="Knap 3" /> <br />
<asp:button id="knap4" runat="server" onClick="buttonClick" Text="Knap 4" /> <br />
Avatar billede hojgaard Nybegynder
20. januar 2005 - 12:22 #2
Det er en System.Web.UI.WebControls.Button, som bliver indsat i en HtmlTableRow.

Problemet er at løsningen allerede har noget kode, der gør at submit altid åbner en anden side (søg), og forhindrer min knap i at køre dens action metode.
Derfor vil jeg gerne kunne fange button event inden...

Jeg har prøvet din kode, men får en fejl:
Exception Details: System.InvalidCastException: Specified cast is not valid.

System.Web.UI.WebControls.Button b = (System.Web.UI.WebControls.Button)sender;
Avatar billede hojgaard Nybegynder
20. januar 2005 - 12:42 #3
Jeg har udvidet koden en smule. Nu får jeg ikke fejl længere, men den fangler heller ikke, at det er en knap som bliver klikket på :|

if (sender is Button)
{
    Button b = (Button)sender;
    Response.Write("Knap: " + b.Text);
}
Avatar billede snepnet Nybegynder
22. januar 2005 - 15:14 #4
hej hojgaard :o)

du kommer nok til at rykke lidt rundt på din kode - du vil ikke kunne få den knap der er trykket på til at optræde som sender i din page_load.

du må bruge en model som den cyberfessor har angivet... altså hvor du opretter en handler af click-events og i den så udleder hvilken knap der er trykket på.
alternativt kan du også bare have en handler for hver knap.

du kan eventuelt kigge lidt på Controls Execution Lifecycle her :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconControlExecutionLifecycle.asp

mvh
Avatar billede snepnet Nybegynder
07. september 2005 - 18:14 #5
how goes?
(et svar her hvis noget var anvendeligt)
mvh
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