Back to Devexpress

ASPxDiagram.NodeDataBound Event

aspnet-devexpress-dot-web-dot-aspxdiagram-dot-aspxdiagram-08e2bc25.md

latest3.6 KB
Original Source

ASPxDiagram.NodeDataBound Event

Occurs after a node has been bound to a data source.

Namespace : DevExpress.Web.ASPxDiagram

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

NuGet Package : DevExpress.Web

Declaration

csharp
public event DiagramNodeEventHandler NodeDataBound
vb
Public Event NodeDataBound As DiagramNodeEventHandler

Event Data

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

PropertyDescription
NodeGets a node object related to the event.

Remarks

The NodeDataBound event is raised for each diagram node after it has been bound to the data source. This event enables you to customize settings of the node before it is finally rendered. You can access the processed node via the Node property of the event’s argument.

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

See Also

NodeDataSourceID

ASPxDiagram Class

ASPxDiagram Members

DevExpress.Web.ASPxDiagram Namespace