IconUrl set from Skin using incorrect path

6 posts, 0 answers
  1. Jerome
    Jerome avatar
    87 posts
    Member since:
    Aug 2010

    Posted 18 Jun 2012 Link to this post

    I'm trying to set the IconUrl for a RadWindow from a .skin file, thusly:

    <telerik:RadWindow runat="server" SkinID="AddPersonNoteWindow"
        IconUrl="Images/Icons/note_add.png" />

    The value is applying, however it's coming out incorrect:

    background-image: url("//App_Themes/Default/Images/Icons/note_add.png")

    The double forward slashes near the beginning cause the icon to not work.

    What's up with this?

    [EDIT]

    Seems unrelated to the Skin file. When I set the icon without the skin file, I get the same issue.

    I think the Telerik code should probably not generate these double slashes.
  2. Marin Bratanov
    Admin
    Marin Bratanov avatar
    5704 posts

    Posted 20 Jun 2012 Link to this post

    Hello Jerome,

    Does the page with the RadWindow exists in the site's root? If so, this problem was reported several times during the years and our investigation shows that the problem is not directly related to our control, but to the way the framework works. Basically, our control does not affect the URL in any way - we leave this entirely to the framework's URL resolving logic. 

    There seems to be a problem with Request.ApplicationPath in some specific scenarios - check this blog post for more details. As you will see, the problem occurs with the standard controls as well.

    This being said, I would suggest to set the IconUrl property from code-behind, by using the ResolveUrl method, e.g.:
    AddPersonNoteWindow.IconUrl = ResolveUrl("~/Images/Icons/note_add.png")


    I hope this helps. If it doesn't, or your scenario is different than the one described in the blog post, please provide more details about your exact setup so we can investigate further.


    Regards,
    Marin Bratanov
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
  3. Jerome
    Jerome avatar
    87 posts
    Member since:
    Aug 2010

    Posted 20 Jun 2012 Link to this post

    No, the page exists in a subfolder called Pages.

    I'm trying to avoid setting the IconUrl from the Page at all, let alone the code behind. I'm trying to set it from a .skin file. The example <telerik:RadWindow> tag that I showed you in my example is from a .skin file.

    If the .skin file exists in App_Themes/Foo.skin, the path I set in the Skin file should be relative to the .skin file. And actually, it is. It's smart enough to put App_Themes in the url. It's just the double slash in front of it that breaks it.
  4. Marin Bratanov
    Admin
    Marin Bratanov avatar
    5704 posts

    Posted 22 Jun 2012 Link to this post

    Hi Jerome,

    I tried this scenario and things appear to be functioning properly with me. I am attaching here the files I used for testing (a simple theme and the page that uses it) along with a screenshot with the behavior on my end. I deployed the site to a virtual directory in my IIS as well (you can see this in the URL of the browser). Does this sample work fine in your case? If the URL for the RadWIndow is incorrect is the image's src correct? If it is not then there is something in your specific environment that is causing the framework to break the  URLs and it is not coming from the RadWindow. In case the RadWindow does not work properly, but the image does could you send me back the modified pages that show this behavior (or a small runnable project in case these files alone, i.e. outside of your environment, cannot show the problem)?

    Greetings,
    Marin Bratanov
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
  5. Jerome
    Jerome avatar
    87 posts
    Member since:
    Aug 2010

    Posted 22 Jun 2012 Link to this post

    Hmm. Well, this is going to be obnoxious. The site has a lot of stuff in it, so stripping out stuff to come up with a test case is going to be hard. Here is the Javascript generated by the RadWindow:

    $create(Telerik.Web.UI.RadWindow, {"_dockMode":true,"autoSize":true,"behaviors":4,"clientStateFieldID":"ctl00_ctl00_MasterPagePartnerLayoutPlaceHolder_MasterPagePartnerImplContentPlaceHolder_AddPersonNoteWindow_ClientState","formID":"aspnetForm","iconUrl":"//App_Themes/Default/Images/Icons/note_add.png","minimizeIconUrl":"//App_Themes/Default/Images/Icons/note_add.png","modal":true,"name":"AddPersonNoteWindow","skin":"Metro","title":"New Person Note","visibleStatusbar":false}, null, null, $get("ctl00_ctl00_MasterPagePartnerLayoutPlaceHolder_MasterPagePartnerImplContentPlaceHolder_AddPersonNoteWindow"));

    Notice the IconUrl value which is being set.

    I'll see if I can figure out how to get a test case for this, I guess. The site has multiple masterpages, swapped out dynamically, and such. So...

  6. Marin Bratanov
    Admin
    Marin Bratanov avatar
    5704 posts

    Posted 26 Jun 2012 Link to this post

    Hello Jerome,

    The value that gets serialized to the client is sent as-is from the server, which is where the problem originates.The steps in this blog post can be helpful in isolating a sample and can also help finding the cause of the issue by stripping things one by one. What happens if you set the URL for the ImageUrl properly of a simple image control in your theme, as I do in my sample. Does it get a correct URL? If not - then there isn't anything we can do, as this is what we get from the framework itself.

    On a side note - if it is possible in your case you can try adding a full URL, e.g. http://mysite.com/images/icon.png to the property and see if the framework changes it.


    Greetings,
    Marin Bratanov
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Back to Top