Some issues with RadLightBox

2 posts, 0 answers
  1. Massimiliano
    Massimiliano avatar
    184 posts
    Member since:
    Oct 2012

    Posted 03 Dec 2013 Link to this post

    Playing a bit with the control I found some issues:
    - If you use DataTitleField and DataDescriptionField and those are null in the DB (I may have some pictures with descriptions and other with just the title or maybe even some picture without both), you receive a system.nullreference exception instead of a pic with empty title/description

    - If the pic is small ore the title/description is long, the image count text goes out the borders of the lightbox instead of expanding it. Screenshot here

     - When paging images inside an open LightBox with the supplied arrows, in a databound set, i receive a JS error: 
    Uncaught TypeError: Cannot call method 'get_imageUrl' of undefined RadLightBoxScripts.js:270
    c.RadLightBox._determineContentMode RadLightBoxScripts.js:270
    c.RadLightBox._showLightBoxStructure RadLightBoxScripts.js:138
    (anonymous function) RadLightBoxScripts.js:291
    b.isFunction.i jQuery.js:3
    r.complete jQuery.js:5
    c jQuery.js:3
    p.fireWith jQuery.js:3
    u jQuery.js:5
    b.fx.tick

    - [SOLVED] Adding a RadLightBoxItem in code behind with a target control before bounding to a collection (code follows), works BUT when opening the lightbox while the total number of pics displayed in the box is correct (sums the manually inserted items + the databound item) the number of the actual opened pic is wrong it always gets 1 both if you open the manually added item and the first data bound item, something like 1 of 5 for both.
    Dim lightBoxItem As New RadLightBoxItem
    lightBoxItem.TargetControlID = "MainImage"
    lightBoxItem.ImageUrl = LinkHelpers.GetProfilePath(profile.ProfileId) & profile.ImagePath
     
    Dim profileImagesLightBox As RadLightBox = DirectCast(EvaForm.FindControl("ProfileImagesLightbox"), RadLightBox)
    profileImagesLightBox.Items.Add(lightBoxItem)

    in aspx (that's inside a formview inside a user control nested in a radgrid..)
    <fieldset>
        <legend>5. Foto</legend>
        <dl class="dl-horizontal">
            <dt><%#: If(Not String.IsNullOrWhiteSpace(Item.ImageDescription), Item.ImageDescription, "Foto")  %></dt>
            <dd>
                <div class="profile-photo">
                    <asp:PlaceHolder runat="server" Visible='<%# Not (String.IsNullOrWhiteSpace(Item.ImagePath)) %>'>
                        <asp:image runat="server" ID="MainImage" ImageUrl='<%# LinkHelpers.GetProfilePath(Item.ProfileId) & "t2-" & Item.ImagePath %>' CssClass="img-polaroid" />
                    </asp:PlaceHolder>
                </div>
            </dd>
        </dl>
        <dl class="dl-horizontal">
            <dt>Altre foto</dt>
            <dd>
                <telerik:RadLightBox ID="ProfileImagesLightbox" runat="server" DataImageUrlField="ImagePath" Modal="true" AppendDataBoundItems="true" TabIndex="101">
                    <ClientSettings AllowKeyboardNavigation="true" NavigationMode="Zone">
                        <AnimationSettings HideAnimation="None" NextAnimation="Resize" PrevAnimation="Resize" ShowAnimation="Resize" />
                    </ClientSettings>
                </telerik:RadLightBox>
     
                <asp:Repeater runat="server" ID="ProfileImages" ItemType="Eva.Entities.EvaProfileImage">
                    <ItemTemplate>
                        <a href="<%# LinkHelpers.GetProfilePath(Item.ProfileId) & Item.ImagePath%>" onclick="return false;"><img style="display: inline;"  onclick="OpenRadLigthBox(<%# Container.ItemIndex %>, '<%= EvaForm.FindControl("ProfileImagesLightbox").ClientID %>');
                              
                             return false;" class="media-object img-polaroid" src='<%# LinkHelpers.GetProfilePath(Item.ProfileId) & "t1-" & Item.ImagePath%>' /></a>
                    </ItemTemplate>
                </asp:Repeater>
            </dd>
        </dl>
    </fieldset>

    Here is the result: screenshot here with the bigger pic wich is inserted "manually" in code behind (since it comes from another db table) and the smaller pics are databound (always in code behind with custom data-binding)
    [SOLVED]: This was solved with <%# Container.ItemIndex + 1 %> thus taking into account the item you added manually (1 in my case)

    - Some attributes maybe are somehow "obscure" for newbies (I tryed to use them based on common sense) like PreserveCurrentItemTemplates or AppendDataBoundItems. Some examples in the docs would be much appreciated, as well as some example accessing the bound field values in the DataBound event to modify them (add paths, change descriptions/titles).
  2. Milena
    Admin
    Milena avatar
    224 posts

    Posted 06 Dec 2013 Link to this post

    Hello,

    We tried to replicate the issues you are facing , but to no avail. Attached, you can find the project we used for testing. Please review it and let us know what we are missing. You can try to modify the sample project in order to reproduce the issues on it or isolate the problems in a new project. Thus, we will investigate the problematic behavior locally and come back to you with our findings.

    Regards,
    Milena
    Telerik
    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 the blog feed now.
  3. UI for ASP.NET Ajax is Ready for VS 2017
Back to Top