Skip to main content
All docs
V25.1
  • Restrict Edit Operations

    • 4 minutes to read

    The ASPxDiagram control allows you to restrict edit operations in the following ways.

    Prohibit All Operations of a Specific Type

    Set the corresponding Allow{Operation} property to false to prohibit an edit operation.

    <dx:ASPxDiagram ID="Diagram" runat="server" Width="100%" Height="600px">
        <SettingsEditing 
            AllowAddShape="false" 
            AllowChangeConnection="false" 
            AllowChangeConnectorPoints="false" 
            AllowChangeConnectorText="false" 
            AllowChangeShapeText="false" 
            AllowDeleteConnector="false" 
            AllowDeleteShape="false"
            AllowMoveShape="false" 
            AllowResizeShape="false" />
    </dx:ASPxDiagram>
    

    Prohibit Individual Operations

    Every time a user attempts an edit operation, the control raises the RequestEditOperation event. Use the allowed parameter to either permit or cancel the user action. To identify the operation type and target element, use the event parameters listed below.

    Example

    function onRequestEditOperation(s, e) {
        if(e.operation === DiagramEditOperation.AddShape) {
            if(e.args.shape.type !== "employee" && e.args.shape.type !== "team") {
                if(e.reason !== DiagramRequestEditOperationReason.CheckUIElementAvailability)
                    showWarning("You can add only a 'Team' or an 'Employee' shape.");
                e.allowed = false;
            }
        }
        else if(e.operation === DiagramEditOperation.ResizeShape) {
            if(e.args.newSize.width < 1 || e.args.newSize.height < 0.75) {
                if(e.reason !== DiagramRequestEditOperationReason.CheckUIElementAvailability)
                    showWarning("The shape size is too small.");
                e.allowed = false;
            }
        }
        else if(e.operation === DiagramEditOperation.BeforeChangeShapeText) {
            if(e.args.shape.type === "root") {
                if(e.reason !== DiagramRequestEditOperationReason.CheckUIElementAvailability)
                    showWarning("You cannot change the 'Development' shape's text.");
                e.allowed = false;
            }
        }
        else if(e.operation === DiagramEditOperation.ChangeShapeText) {
            if(e.args.text === "") {
                if(e.reason !== DiagramRequestEditOperationReason.CheckUIElementAvailability)
                    showWarning("A shape's text cannot be empty.");
                e.allowed = false;
            }
        }
        ...
    }
    
    <dx:ASPxDiagram ID="Diagram" runat="server" Width="100%" Height="600px">
        <ClientSideEvents RequestEditOperation="onRequestEditOperation" />
    </dx:ASPxDiagram>
    

    Run Demo: Editing Restrictions

    Read Only Mode

    Set the ReadOnly property to true to protect the ASPxDiagram control from edit operations. In this mode, the control hides its UI elements: the toolbox, history toolbar, and properties panel.

    <dx:ASPxDiagram ID="Diagram" runat="server" Width="100%" Height="600px" ReadOnly="true">
    </dx:ASPxDiagram>
    

    Run Demo: Read Only