Home All Groups Group Topic Archive Search About

UserControls in a different directory

Author
24 Sep 2006 7:03 AM
Nathan Sokalski
I have my UserControls in a subdirectory called usercontrols. In the code
for one of my UserControls I have the following:

    Public Property adimage() As String
        Get
            Return lnkAdvertisement.ImageUrl
        End Get
        Set(ByVal value As String)
            Response.Write(Me.Page.ResolveClientUrl(value) & "<br/>" &
ControlChars.NewLine)
            lnkAdvertisement.ImageUrl = Me.Page.ResolveClientUrl(value)
            System.Diagnostics.Debug.Write(Me.Page.ResolveClientUrl(value))
        End Set
    End Property


In the Page that uses this UserControl I pass it the value
"images/bannerad.jpg". However, when I open the page, the Response.Write()
and Debug.Write() lines both output 'images/bannerad.jpg' but the value that
gets assigned to lnkAdvertisement.ImageUrl is
'usercontrols/images/bannerad.jpg'. Why is a different value being returned
by Me.Page.ResolveClientUrl(value)? My main goal is to make the paths I pass
when using the UserControl to be treated as relative to the path of the Page
containing the UserControl, not the path of the UserControl. What should I
do? Thanks.
--
Nathan Sokalski
njsokal***@hotmail.com
http://www.nathansokalski.com/

Author
24 Sep 2006 9:07 AM
Gaurav Vaish (www.EduJiniOnline.com)
> In the Page that uses this UserControl I pass it the value
> "images/bannerad.jpg". However, when I open the page, the Response.Write()

> gets assigned to lnkAdvertisement.ImageUrl is
> 'usercontrols/images/bannerad.jpg'. Why is a different value being
> returned

Probably because your page is within a folder 'usercontrols' related to the
application-root.
Prefer using the form "~/images/bannerad.jpg" instead.


Author
24 Sep 2006 7:26 PM
Nathan Sokalski
Is there a way to get the directory that the Page using the control is in?
For example, if my Page was located at

http://localhost/home/extrapages/misc/mypage.aspx

it would return

http://localhost/home/extrapages/misc/

I need to be able to enter URLs relative to a page regardless of what
directory the page is in, and throwing the ~/ in front of the relative
directory only works if the page is located in the application root. Any
ideas? Thanks.
--
Nathan Sokalski
njsokal***@hotmail.com
http://www.nathansokalski.com/

"Gaurav Vaish (www.EduJiniOnline.com)"
<gaurav.vaish.nospam@nospam.gmail.com> wrote in message
Show quoteHide quote
news:ucDYAk73GHA.2420@TK2MSFTNGP02.phx.gbl...
>> In the Page that uses this UserControl I pass it the value
>> "images/bannerad.jpg". However, when I open the page, the
>> Response.Write()
>
>> gets assigned to lnkAdvertisement.ImageUrl is
>> 'usercontrols/images/bannerad.jpg'. Why is a different value being
>> returned
>
> Probably because your page is within a folder 'usercontrols' related to
> the application-root.
> Prefer using the form "~/images/bannerad.jpg" instead.
>
>
> --
> Happy Hacking,
> Gaurav Vaish | http://www.mastergaurav.com
> http://www.edujinionline.com
> http://articles.edujinionline.com/webservices
> -------------------
>
>
Author
26 Sep 2006 5:55 PM
Gaurav Vaish (www.EduJiniOnline.com)
> http://localhost/home/extrapages/misc/mypage.aspx
>
> it would return
>
> http://localhost/home/extrapages/misc/

look at: HttpRequest::Url, HttpRequest::PathInfo and HttpRequest::Path
You can obtain instance of HttpRequest from the Request property of the
page.