Percentage Widths Cause Error

7 posts, 0 answers
  1. Rob
    Rob avatar
    27 posts
    Member since:
    Oct 2012

    Posted 01 Oct 2012 Link to this post

    Version 2012.2.912.40

    I'm working with the RadHTMLChart and wanted to dynamically modify a piechart.  Thus, I updated our working Telerik dlls to the latest version.

    However, now our rad docks are erroring when being moved on the screen and the layout saved.

    I've identified an issue that didn't happen with earlier versions.  Namely, the containing space for the docks must be a whole number (integer) instead of a decimal.  I have my left dock zone in an area of 33% of the screen and the other the remainder.  If I used specified widths, I do not get an error.

    EDIT:  I should note that the percentage value widths are on containers that the dock zones are within.

    Trying to move a dock errors with variable (percentage) widths:

    1. Uncaught Sys.ArgumentOutOfRangeException: Sys.ArgumentOutOfRangeException: Value must be an integer. Parameter name: x Actual value was 530.4500122070312. ScriptResource.axd:237
      1. Error$argumentOutOfRangeScriptResource.axd:302
      2. Function$_validateParameterTypeScriptResource.axd:217
      3. Function$_validateParameterScriptResource.axd:130
      4. Function$_validateParamsScriptResource.axd:84
      5. Telerik.Web.UI.RadDock._getLocationScriptResource.axd:430
      6. Telerik.Web.UI.RadDock._startDragDropScriptResource.axd:178
      7. Telerik.Web.UI.RadDock.onDragStartScriptResource.axd:191
      8. b.ResizeExtender._raiseDragEventScriptResource.axd:450
      9. b.ResizeExtender._storeStartCoordsScriptResource.axd:484
      10. b.ResizeExtender._onHandleMouseDownScriptResource.axd:597
      11. (anonymous function)
  2. Jeff
    Jeff avatar
    17 posts
    Member since:
    Sep 2012

    Posted 01 Oct 2012 Link to this post

    Just adding my two cents' worth...I've noticed the exact same problem, but the docks function fine in IE9.  For me, the dragging issue is only happening in Firefox.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Rob
    Rob avatar
    27 posts
    Member since:
    Oct 2012

    Posted 01 Oct 2012 Link to this post

    I'm seeing the error in Chrome and FireFox.  IE will typically work but not always.
  5. Rob
    Rob avatar
    27 posts
    Member since:
    Oct 2012

    Posted 02 Oct 2012 Link to this post

    My temporary solution thus far is to resize with containers around the zones on load and resize of the browser window.  By rounding the width I ensure it is always a whole number value and never a decimal.

    addLoadEvent(SetZoneWidths);
    addResizeEvent(SetZoneWidths);
    function SetZoneWidths() {
        var containerWidth = $telerik.$('#divDashboardLayout').width();
        $telerik.$('#divLeftZone').width(Math.round(containerWidth * .33));
        $telerik.$('#divRightZone').width(Math.round(containerWidth * .65));
    }
  6. Slav
    Admin
    Slav avatar
    1356 posts

    Posted 04 Oct 2012 Link to this post

    Hello Robert,

    I tried to reproduce the problem you reported, but it appears that I am missing something. I have attached my test sample to this post. Please compare it with your actual project and let me know if there are differences in the setup. Here you can observe the behavior of RadDock on my end.

    Note that I am mostly guessing as to what your setup is. Please try modifying the attached sample so that it matches your scenario and send it via support ticket. If this is not possible, you can also isolate the problem in a simple, fully runnable project, which will allow me to inspect it locally and provide a more to the point answer.

    Greetings,
    Slav
    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.
  7. Rob
    Rob avatar
    27 posts
    Member since:
    Oct 2012

    Posted 04 Oct 2012 Link to this post

    Hi Slav,

    Sorry I wasn't more clear.  I appreciate your setting up the sample.  I've updated it to be in line with mine so you can see the issue I'm encountering.  I tested on my side and got the same "must be an integer" javascript errors.

    Perhaps there's a better way to create percentile based width dock zones that float beside one another?

    Thanks.

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="RadDockSample.aspx.cs" Inherits="RadDockSample" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="Scriptmanager1" runat="server" />
        <telerik:RadDockLayout runat="server" ID="RadDockLayout1" OnLoadDockLayout="RadDockLayout_LoadDockLayout"
            OnSaveDockLayout="RadDockLayout_SaveDockLayout">
            <div style="width: 33%;float:left;">
                <telerik:RadDockZone runat="server" ID="RadDockZone1" Orientation="Vertical" MinHeight="800px" MinWidth="250px" BorderStyle="None">
                    <telerik:RadDock runat="server" ID="RadDockl" AutoPostBack="true" DockMode="Docked" >
                    </telerik:RadDock>
                </telerik:RadDockZone>
            </div>
            <div style="width: 65%;float:left;">
                <telerik:RadDockZone runat="server" ID="RadDockZone2" Orientation="Vertical" MinHeight="800px" MinWidth="250px" BorderStyle="None">
                    <telerik:RadDock runat="server" ID="RadDock2" AutoPostBack="true" DockMode="Docked" >
                    </telerik:RadDock>
                </telerik:RadDockZone>
            </div>
        </telerik:RadDockLayout>
        </form>
    </body>
    </html>
  8. Slav
    Admin
    Slav avatar
    1356 posts

    Posted 09 Oct 2012 Link to this post

    Hello Robert,

    Thank you very much for the provide code sample!

    The problem you encountered appears to be a bug in RadDock and it occurs when the left or top offset of the control is not an integer as in your case. I have brought this issue to the attention of our developers, however I cannot provide a firm estimate when a fix will be available. You can track the status of the problem via the PITS Issue that I have logged.

    For the time being you can resolve the issue by adding the following override before the closing form tag on your page:
    <script type="text/javascript">
        Telerik.Web.UI.RadDock.prototype._getLocation = function (element)
        {
            if (!element) element = this.get_element();
            var elOffset = $telerik.$(element).offset();
     
            return new Sys.UI.Point(parseInt(elOffset.left), parseInt(elOffset.top));
        }
     
        Telerik.Web.UI.RadDockZone.prototype._getLocation = function (element)
        {
            if (!element) element = this.get_element();
            var elOffset = $telerik.$(element).offset();
     
            return new Sys.UI.Point(parseInt(elOffset.left), parseInt(elOffset.top));
        }
    </script>

    I have updated your Telerik points as a token of gratitude for reporting the problem.

    Greetings,
    Slav
    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
UI for ASP.NET Ajax is Ready for VS 2017