Avatar billede shosho500 Nybegynder
06. december 2005 - 21:56 Der er 5 kommentarer og
1 løsning

Image control menu med rollover ?

Hej

Jeg har en menu, som består af 6 billeder. Menuen er lavet som en user control og de 6 billeder er sat ind vha. Image controlen i asp.net 2.0. Jeg vil gerne lave en rollover effekt, dvs hvert menupunkt skifter til et andet billede når musen føres hen over + at min gamle code stadig skal virke :)

Min ascx fil ser sådan her ud:
----------------------------------------------------------------

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Menu.ascx.cs" Inherits="Menu" %>
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
    <div id="topblue"></div>
    <div id="blackline"></div>
    <div id="home">
        <a href="default.aspx" onmouseenter=""><asp:Image ID="imgHome" runat="server" ImageUrl="images/home.gif" MouseEnter="OnMouseEnterHandler" MouseLeave="OnMouseLeaveHandler" /></a></div>
    <div id="profil">
        <a href="profil.aspx"><asp:Image ID="imgProfil" runat="server" ImageUrl="images/profil.gif" /></a></div>
    <div id="loesninger">
        <a href="loesninger.aspx"><asp:Image ID="imgLoesninger" runat="server" ImageUrl="images/loesninger.gif" /></a></div>
    <div id="referencer">
        <a href="referencer.aspx"><asp:Image ID="imgReferencer" runat="server" ImageUrl="images/referencer.gif" /></a></div>
    <div id="kontakt">
        <a href="kontakt.aspx"><asp:Image ID="imgKontakt" runat="server" ImageUrl="images/kontakt.gif" /></a></div>
    <div id="links">
        <a href="links.aspx"><asp:Image ID="imgLinks" runat="server" ImageUrl="images/links.gif" /></a></div>

----------------------------------------------------------------

Og det jeg bruger i min codebehind ser sådan her ud:
----------------------------------------------------------------


public partial class Menu : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int start = Request.Path.LastIndexOf("/") + 1;
        string filename = Request.Path.Substring(start, (Request.Path.Length  - start )).ToLower();

        // switch with string type
        switch (filename)
        {
            case "default.aspx":
                imgHome.ImageUrl = "images/homeo.gif";
                break;
            case "profil.aspx":
                imgHome.ImageUrl = "images/profilo.gif";
                break;
            case "loesninger.aspx":
                imgHome.ImageUrl = "images/loesningero.gif";
                break;
            case "referencer.aspx":
                imgHome.ImageUrl = "images/referencero.gif";
                break;
            case "kontakt.aspx":
                imgHome.ImageUrl = "images/kontakto.gif";
                break;
            case "links.aspx":
                imgHome.ImageUrl = "images/linkso.gif";
                break;
            default:
                imgHome.ImageUrl = "images/homeo.gif";
                break;
        }
    }
}

----------------------------------------------------------------

Det hele virker også fint, når man klikker på et menu punkt, skifter billedet og holder det indtil man trykker på et nyt. Nu vil jeg så have en rollover effekt, men hvordan laver man så lige det ?
Avatar billede shosho500 Nybegynder
06. december 2005 - 21:57 #1
I mit home link står der noget med onmouseente og mouseeventhandler osv. det er slettet, det er fra da jeg prøvede mig frem til rollover effekten :)
Avatar billede snepnet Nybegynder
06. december 2005 - 23:59 #2
du skal gøre det clientside - sådan noget i denne stil:

<asp:Image ID="imgLoesninger" runat="server" ImageUrl="images/loesninger.gif" onmouseover="this.src='images/loesninger_over.gif' onmouseout="this.src='images/loesninger.gif' />

mvh
Avatar billede shosho500 Nybegynder
07. december 2005 - 08:32 #3
Har jeg prøvet får en fejl:

Parser Error Message: The server tag is not well formed.


Det tag, onmouseover osv. kan ikke bruges i asp image controlen :( ved ikke hvad jeg skal gøre for at få det til at virke...
Avatar billede snepnet Nybegynder
07. december 2005 - 10:10 #4
du kan tilskrive dem programmatisk - f.eks. i page_load:

this.imgLosninger.Attributes.Add("onmouseover","<script>");
this.imgLosninger.Attributes.Add("onmouseout","<script>");

mvh
Avatar billede shosho500 Nybegynder
08. december 2005 - 09:15 #5
har fundet ud af det... smid et svar :)
Avatar billede snepnet Nybegynder
08. december 2005 - 10:09 #6
u got it :o)
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