Avatar billede anhansen Nybegynder
20. november 2003 - 15:02 Der er 8 kommentarer og
1 løsning

Mouseover til asp:imagebutton

Hejsan...


Hvordan får man puttet en mouseover effekt der skifter billedet på en asp:imagebutton.

Jeg bruger VS.net
Avatar billede odegaard Nybegynder
20. november 2003 - 15:20 #1
Med JavaScript som du altid har gjort det
Avatar billede burningice Nybegynder
20. november 2003 - 15:47 #2
odegaard>> :)

anhansen>> id.Attributes.Add("onMouseOver", "DinJavaScriptFunktion");
Avatar billede odegaard Nybegynder
20. november 2003 - 16:03 #3
cyberfessor: Ja ok det var måske ikke den helt store hjælp jeg kom med.
Jeg tror nu at jeg snart skriver en lang artikel der slår fast (med 10" søm) at man ikke kan lave clientside tingeltangel med kode der ekserkveres serverside. Det er jo efterhånden et normalt spørgsmål her.
Avatar billede burningice Nybegynder
20. november 2003 - 16:25 #4
odegaard>> ikke helt sandt.. man kan jo NETOP lave clientside kode ud fra det der eksekveres på serveren. Dog kan ens clientside-kode ikke interagere (kalde en server-funktion fra javascript f.eks.) med serveren, som mange har fået en forkert opfattelse  af.

Jeg har da f.eks. subclassen ´button-klassen der findes i System.Web.Ui.WebControls men denne, som går at der er kommet en Confirm-attribut på. Det er da netop et eksempel på at man kan lave clientside kode ved hjælp af asp.net:

public class Button : System.Web.UI.WebControls.Button
    {
        private bool confirm = false;
        private string confirmMessage;

        public Button() : base()
        {
           
        }

        public bool Confirm
        {
            set
            {
                confirm = value;
            }

            get
            {
                return confirm;
            }
        }

        public string ConfirmMessage
        {
            set
            {
                confirmMessage = value;
            }

            get
            {
                return confirmMessage;
            }
        }

        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            if (this.Confirm)
            {
                if (confirmMessage != null)
                {
                    this.Attributes.Add("onClick", "return confirm('"+ ConfirmMessage +"')");
                }
                else
                {
                    throw new ArgumentNullException("If you want there to be a confirm you need a confirm-message");
                }
            }

            base.Render (writer);
        }

    }
Avatar billede burningice Nybegynder
20. november 2003 - 16:27 #5
På samme måde kan man jo sublasse imagebutton-klassen og smide tre ekstra attributter på. En til om der skal være mouseover-effekt, og en til hvert af de to billeder.
Dernæst overrider man Render-metoden, og alt efter hvordan de tre attributter er sat renderer man noget client-side kode, der gør at man opnår den ønskede effekt.
Avatar billede odegaard Nybegynder
20. november 2003 - 16:34 #6
Jeg mener nu stadig jeg har ret. Det er jo stadig almindelig HTML kode der kommer ud af ASP.NET, og derved de gamle kodeprincipper man skal have fat i. Men jeg kan godt se at jeg formulerede mig lidt vagt i min forrige post.
Avatar billede anhansen Nybegynder
24. november 2003 - 14:04 #7
Hvis du smider et svar cyberfessor.. Det du skrev med attributes.add virker som planlagt... Ved at lave en imagebtn.Attribute.add("OnMouseOver", "this.src='/billed.jpg'");
og så en med onMouseOut er effekten opnået...

Tak for hjælpen...
Avatar billede burningice Nybegynder
24. november 2003 - 15:16 #8
:) np...
Avatar billede anhansen Nybegynder
27. november 2003 - 08:28 #9
værsgo...
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