Skip to main content

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