Avatar billede davidfossil Nybegynder
28. december 2004 - 13:46 Der er 6 kommentarer og
1 løsning

NavigateUrl på HyperLink i user control

Jeg har en user control der indenholder et hyperlink.
Dette link skal pege på "upload.aspx" i denne mappe hvorfra user control'en bliver brugt - altså svarende til at hvis jeg i mappen "/billeder/default.aspx" bruger denne control skal linket være til "/billeder/upload.aspx".

Sådan kører det bare ikke som standard. Derimod peger mit link til denne mappe hvor min control ligger - ex: "/Code/Content/upload.aspx".

Jeg kan ikke rigtig greje hvordan jeg ordner dette. Gør jeg noget basalt galt?
Avatar billede a1a1 Novice
28. december 2004 - 14:17 #1
du kan altid gøre det på denne måde:
link.navigateUrl = "/billeder/upload.aspx" (op til roden og ned i billeder)
eller
link.navigateUrl = "../billeder/upload.aspx" (en op og ned i billeder)

;o)
Avatar billede davidfossil Nybegynder
28. december 2004 - 14:27 #2
nej, for jeg vil også meget gerne kunne bruge min control i "/musik/default.aspx" og her pege på "/musik/upload.aspx" - jeg vil altså blot have at "udregningen" af url'en sker med udgangspunkt i .aspx filen og ikke i .ascx filen...

faktisk burde et alm <a> tag (der ikke bliver parset serverside) virke efter hensigten. vil lige teste denne løsning når jeg er hjemme i aften.

forslag er stadig velkomne
Avatar billede jepsen999 Nybegynder
28. december 2004 - 14:36 #3
Hvad med:
this.HyperLink1.NavigateUrl = Page.Server.MapPath("./upload.aspx");
i din page_load for usercontrollen.
Avatar billede davidfossil Nybegynder
29. december 2004 - 16:18 #4
jepsen999 > det vil da blot lave et link til C:/inetpub/wwwroot..... ?
Avatar billede davidfossil Nybegynder
29. december 2004 - 16:30 #5
Nu har jeg fundet en løsning der dur, omend den måske ikke er genial.
En klasse der nedarver fra HyperLink implementerer følgende nye NavigateUrl:

public new string NavigateUrl
{
    set
    {
        string[] path = HttpContext.Current.Request.FilePath.Split('/');
        path[path.Length-1] = value;
        base.NavigateUrl = String.Join("/", path);
    }
}

Ved at tage den nuværende url (som brugeren ser den) og skifte sidste led ud med siden der linkes til, opnås det ønskede resultat.
Avatar billede jepsen999 Nybegynder
29. december 2004 - 16:44 #6
jo, det var da vist noget ævl...
Jeg har lige kigget lidt på Request.Url hvor man kunne forestille sig der lå info om stien. Men alle properties har filnavnet med, så du slipper nok ikke for at skulle splitte den manuelt op.
Avatar billede davidfossil Nybegynder
02. januar 2005 - 15:31 #7
jeg lukker her
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