Back to Devexpress

DiagramNode Class

aspnet-devexpress-dot-web-dot-aspxdiagram-0161bf43.md

latest3.6 KB
Original Source

DiagramNode Class

A diagram node.

Namespace : DevExpress.Web.ASPxDiagram

Assembly : DevExpress.Web.ASPxDiagram.v25.2.dll

NuGet Package : DevExpress.Web

Declaration

csharp
public class DiagramNode :
    DiagramItem
vb
Public Class DiagramNode
    Inherits DiagramItem

The following members return DiagramNode objects:

Remarks

When the ASPxDiagram control is bound to a data source (NodeDataSource), the control creates a DiagramNode object and raises the NodeDataBound event for every data item in the source.

You can access the processed DiagramNode object via the event argument’s Node property. Use the object’s properties to customize the node before it is finally rendered.

aspx
<dx:ASPxDiagram ID="Diagram" runat="server" Width="100%" Height="600px"
    NodeDataSourceID="DepartmentDemoDataSource" OnNodeDataBound="Diagram_NodeDataBound" >
    <Mappings>
        <Node Key="ID" ParentKey="ParentID" Text="DepartmentName" />
    </Mappings>
    <SettingsToolbox>
        <Groups>
            <dx:DiagramToolboxGroup CustomCategoryName="Departments" DisplayMode="Texts" />
        </Groups>
    </SettingsToolbox>
</dx:ASPxDiagram>
csharp
protected void Page_Load(object sender, EventArgs e) {
    if(!IsPostBack) {
        Diagram.CustomShapes.AddRange(GetDepartmentShapes());
    }
}
static IEnumerable<DiagramCustomShape> GetDepartmentShapes() {
    return DepartmentDataProvider.GetDepartments().Select(d =>
        new DiagramCustomShape {
            Category = "Departments",
            DefaultText = d.DepartmentName,
            Type = "dep" + d.ID,
            BaseType = DiagramShapeType.Rectangle,
        }
    );
}
protected void Diagram_NodeDataBound(object sender, DiagramNodeEventArgs e) {
    e.Node.Type = "dep" + e.Node.Key;
}
vb
Class SurroundingClass
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        If Not IsPostBack Then
            Diagram.CustomShapes.AddRange(GetDepartmentShapes())
        End If
    End Sub

    Private Shared Function GetDepartmentShapes() As IEnumerable(Of DiagramCustomShape)
        Return DepartmentDataProvider.GetDepartments().[Select](Function(d) New DiagramCustomShape With {
            .Category = "Departments",
            .DefaultText = d.DepartmentName,
            .Type = "dep" & d.ID,
            .BaseType = DiagramShapeType.Rectangle
        })
    End Function

    Protected Sub Diagram_NodeDataBound(ByVal sender As Object, ByVal e As DiagramNodeEventArgs)
        e.Node.Type = "dep" & e.Node.Key
    End Sub
End Class

Inheritance

Object DiagramItem DiagramNode

See Also

DiagramNode Members

DevExpress.Web.ASPxDiagram Namespace