Avatar billede brynil Nybegynder
19. oktober 2002 - 19:40 Der er 2 kommentarer og
1 løsning

Hvor blir min .ascx menu af??

Jeg har en javascript-menu, som jeg henter fra en ascx fil. Kaldet ser således ud:

<UserControl:Menu id="NyMenu" runat="server"/> .. og er registreret som:

<%@ Register TagPrefix="UserControl" TagName="Menu" Src="Menu.ascx" %>

Menuen kommer frem når siden åbnes, men forsvinder når jeg opdaterer grid. Den kommer frem igen, når jeg refresher siden.

Har prøvet at placere den forskellige steder, men uden positivt resultat.

Er der nogen der kan hjælpe mig så den vises permanent på siden?
Avatar billede askhoej Praktikant
19. oktober 2002 - 22:48 #1
Kan du ikke smide kontrollens kode herind ellers bliver det nok lidt svært at finde fejlen ;-)

/askhoej
Avatar billede brynil Nybegynder
19. oktober 2002 - 23:13 #2
Gerne-det er formodentlig script.js du mener. Den fylder noget:

var ve=false;    // true - hovedmenu vises lodret, false - vandret
//    Efter ændringer - husk at modificere de samme værdier i *.css filen!
var tdColor="#000000";        // menu item TEKST farve - ÆNDRES TILLIGE I dropdown.css
var tdBgColor="#FAFBF6";    // menu item BAGGRUNDS farve - ÆNDRES TILLIGE I dropdown.css
var hlColor="#64778B";        // highlight TEKST farve
var hlBgColor="#D7DEE6";    // highlight BAGGRUNDS farve
var md=250;
var ti=-1;
var oTd=new Object;
oTd=null;
function doMenu(td){
    clearTimeout(ti);
    td.style.backgroundColor=hlBgColor;
    td.style.color=hlColor;
    var i;
    var sT="";
    var tda=new Array();
    tda=td.id.split("_");
    if(oTd!=null){
        var tdo=new Array();
        tdo=oTd.id.split("_");
        for(i=1;i<tdo.length;i++){
            sT+="_"+tdo[i];
            if(tdo[i]!=tda[i]){
                document.getElementById("td"+sT).style.backgroundColor=tdBgColor;
                document.getElementById("td"+sT).style.color=tdColor;
                if(document.getElementById("tbl"+sT)!=null)
                    document.getElementById("tbl"+sT).style.visibility="hidden";
            }
        }           
    }
    oTd=td;
    sT="tbl";
    for(i=1;i<tda.length;i++)
        sT+="_"+tda[i];
    if(document.getElementById(sT)!=null)
        document.getElementById(sT).style.visibility="visible";

}
function clearMenu(){
    if(oTd!=null){
        var tdo=new Array();
        tdo=oTd.id.split("_");
        var sT="";
        for(var i=1;i<tdo.length;i++){
            sT+="_"+tdo[i];
            document.getElementById("td"+sT).style.backgroundColor=tdBgColor;
            document.getElementById("td"+sT).style.color=tdColor;
            if(document.getElementById("tbl"+sT)!=null)
                document.getElementById("tbl"+sT).style.visibility="hidden";
        }
        oTd=null;           
    }
}
function runMenu(strURL){
    location.href=strURL;
}
var tt="";
var sT="";
var pT=new Array();
var tA=new Array();
function getCoord(st){
    tA=st.split("_");
    if(tA.length>2){
        tA=tA.slice(0,-1);
        tt=tA.join("_");
        return (document.getElementById("tbl"+tt).offsetTop+document.getElementById("td"+st).offsetTop+4)+"px;left:"+
            (document.getElementById("tbl"+tt).offsetLeft+document.getElementById("td"+st).offsetWidth-2)+"px'>";
    }
    var p1=ve?document.getElementById("td"+st).offsetTop+4:document.getElementById("td"+st).offsetHeight-2;
    var p2=ve?document.getElementById("mainmenu").offsetWidth-4:document.getElementById("td"+st).offsetLeft+5;
    return (document.getElementById("mainmenu").offsetTop+p1)+"px;left:"+(document.getElementById("mainmenu").offsetLeft+p2)+"px'>";
}
if(document.getElementById){
var g1=ve?"":"<tr>";
var g2=ve?"":"</tr>";
var v1=ve?"<tr>":"";
var v2=ve?"</tr>":"";
var v3=ve?" style='float:left'>":">";
var sH="<table class='menu' id='mainmenu' cellspacing='0'"+v3+g1;
var p=0;
var j=0;
while(eval("typeof(td_"+ ++j +")!='undefined'")){
    sH+=v1+"<td id='td_"+j+"' onmouseover='doMenu(this)' onmouseout=\"ti=setTimeout('clearMenu()',md)\"";
    sH+=(eval("typeof(url_"+j+")!='undefined'"))?" onclick=\"runMenu('"+eval("url_"+j)+"')\">":">";
    sH+=eval("td_"+j)+"</td>"+v2;
    if (eval("typeof(td_"+j+"_1)!='undefined'"))
        pT[p++]="_"+j;
}
sH+=g2+"</table>";
document.write(sH);
for(var q=0;typeof(pT[q])!="undefined";q++){
    sT=pT[q];
    sH="";
    j=0;
    sH+="<table class='menu' id='tbl"+sT+"' cellspacing='0' style='top:"+getCoord(sT);
    while(eval("typeof(td"+sT+"_"+ ++j +")!='undefined'")){
        sH+="<tr><td id='td"+sT+"_"+j+"' onmouseover='doMenu(this)' onmouseout=\"ti=setTimeout('clearMenu()',md)\"";
        sH+=(eval("typeof(url"+sT+"_"+j+")!='undefined'"))?" onclick=\"runMenu('"+eval("url"+sT+"_"+j)+"')\">":">";
        sH+=eval("td"+sT+"_"+j)+"</td></tr>";
        if (eval("typeof(td"+sT+"_"+j+"_1)!='undefined'"))
            pT[p++]=sT+"_"+j;
    }
    sH+="</table>";
    document.write(sH);
}
document.getElementById("mainmenu").style.visibility="visible";
}
else document.write("<p>This page uses DHTML and DOM, but your browser doesn't support them.</p>");
------------

Min ascx.-fil ser således ud:

<link rel="stylesheet" href="dropdown.css" type="text/css">
<script language="JavaScript1.2" src="menu_data.js"></script>
<script language="JavaScript1.2" src="menu_script.js"></script>

Menuen er hentet herfra: http://java.skyteam.ru/dropdownmenu.htm.

Jeg opdaterer mit grid via en sub submit(..)
Avatar billede brynil Nybegynder
23. oktober 2002 - 08:55 #3
ok - back to the frames
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