Skip to main content
All docs
V26.1
  • ASPxClientRichEdit.FloatingObjectMoved Event

    Fires after a floating object has been moved and allows you to change the object’s new position.

    Declaration

    FloatingObjectMoved: ASPxClientEvent<ASPxClientRichEditFloatingObjectMovedEventHandler>

    Event Data

    The FloatingObjectMoved event's data class is ASPxClientRichEditFloatingObjectMovedEventArgs. The following properties provide information specific to this event:

    Property Description
    newPosition The floating object’s new position.
    objectX The x-coordinate (in pixels) of the upper-left corner of the floating object relative to the page.
    objectY The y-coordinate (in pixels) of the upper-left corner of the floating object relative to the page.
    pageIndex Returns an index of a page where a floating object has been moved.
    pageIntervals Returns an array of intervals that are belongs to the current page (pageIndex).
    subDocumentId Returns the active sub-document’s identifier.

    Remarks

    The code sample below demonstrates how to change a position of a floating object if is has been moved inside a field result.

    function FloatingObjectMoved(s, e) {
        var subDoc = s.document.subDocuments[e.subDocumentId];
        var pos = e.newPosition;
        var fields = subDoc.findFields(pos);
        if (fields.length > 0) {
            var posInsideCurrentPage = function (pos) {
                for (var i = 0, pi; pi = e.pageIntervals[i]; i++) {
                    if (pos >= pi.start && pos < pi.start + pi.length)
                        return true;
                }
                return false;
            };
            var fieldInterval = fields[0].interval;
            var fieldStart = fieldInterval.start;
            if (pos > fieldStart) {
                if (posInsideCurrentPage(fieldStart)) {
                    e.newPosition = fieldStart;
                }
                else {
                    var fieldEnd = fieldInterval.start + fieldInterval.length;
                    if (posInsideCurrentPage(fieldEnd)) {
                        e.newPosition = fieldEnd;
                    }
                    else {
                        // if it is impossible to move the floating object outside a field and on the current page (e.g. if the field occupies the entire page)
                        e.newPosition = fieldStart;
                        e.objectX = 200;
                        e.objectY = 200;
                    }
                }
            }
        }
    }
    
      <dx:ASPxRichEdit ID="DemoRichEdit" runat="server" ActiveTabIndex="0" ShowConfirmOnLosingChanges="false">
          <ClientSideEvents FloatingObjectMoved="FloatingObjectMoved" />
      </dx:ASPxRichEdit>
    

    Refer to the following section for more information about client-side events: Client API.

    See Also