Avatar billede Max Novice
24. oktober 2006 - 08:39 Der er 6 kommentarer og
1 løsning

JavaScript-funktionalitet til en knap.

Hej igen.

Jeg synes, det er de mest tåbelige ting, som giver mig problemer. Denne gang er det en lille ting, men dog ret inerverende.

Jeg er i gang med denne ASP.NET 2.0 side med C# codebehind, hvorpå jeg tidligere havde en statisk "slet"-knap. Alle mine knapper har OnClick-events, men lige præcis denne "slet"-knap skal noget ekstra. Den skal nemlig også vise en dialog-boks, som spørger brugeren om han/hun er sikker op, elementet skal slettes. Da knappen var statisk på siden, tilføjede jeg bare denne linje i Page_Load delen af min kode:

btnDelete.Attributes.Add("OnClick", "java script:if(confirm('Slet den markerede tekst?')== false) return false;");

.. hvilket virkede fint. Men ak, intet skal være så let, for nu er siden blevet lavet om, og hver slet-knap bliver oprettet som et element i en DataList som et ItemTemplate element.

Jeg tror problemet er, at på Page_Load tidspunktet findes der ingen elementer i min DataList, og derfor er der ingen knapper at tilføje attributter til.

Hvor skal koden evt. tilføjes? Hvis det ikke er den rigtige måde at gøre det på (har ikke fundet nogen anden måde, at få dialogbokse frem på i en web-applikation), hvad skal jeg da gøre?

Håber I kan hjælpe.


Mvh.
Avatar billede dr_chaos Nybegynder
24. oktober 2006 - 09:16 #1
lave en onload funktion på knappen.
i denne kalder du:
btnDelete.Attributes.Add("OnClick", "java script:if(confirm('Slet den markerede tekst?')== false) return false;");
Avatar billede Max Novice
24. oktober 2006 - 14:13 #2
Hmm.. Problemet er, at den stadig siger, at der ikke findes nogen btnDelete i denne kontekst.

"The name 'btnDelete' does not exist in the current context"

Selv når den køres i OnLoad.

Mvh.
Avatar billede dr_chaos Nybegynder
24. oktober 2006 - 14:32 #3
ah min skyld glemte lige at sige at du skal bruge:

protected btnLoad(object Sender, eventargs e)
{
Button b = (Button)Sender;
b.Attributes.Add("OnClick", "java script:if(confirm('Slet den markerede tekst?')== false) return false;");

}

Mener at det burde virke.
Avatar billede Max Novice
24. oktober 2006 - 15:17 #4
Jeps, så virker det! Mange tak for hjælpen. :)

Smid et svar, så smider jeg med points. :)

Mvh.
Avatar billede dr_chaos Nybegynder
24. oktober 2006 - 15:35 #5
svar :)
Avatar billede olebole Juniormester
24. oktober 2006 - 15:39 #6
<ole>

I en event-handler på et HTML-element er det en fejl at bruge JavaScript pseudo-protokollen, så mon ikke det skal se sådan ud:
    b.Attributes.Add("onclick", "if(confirm('Slet den markerede tekst?')== false) return false;");

/mvh
</bole>
Avatar billede Max Novice
25. oktober 2006 - 08:26 #7
olebole, du har ret. Jeg tror det er i løbet af mine mange ivrige forsøg på at placere det, det rigtige sted, jeg har fået lidt for meget kode med.

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