|
<SfTreeView @ref="tree" TValue="MailItem" AllowDragAndDrop="true">
<TreeViewEvents TValue="MailItem" OnNodeDragStop="dragStop"></TreeViewEvents>
<TreeViewFieldsSettings TValue="MailItem" Id="Id" DataSource="@MyFolder" Text="FolderName" ParentID="ParentId" HasChildren="HasSubFolders" Expanded="Expanded"></TreeViewFieldsSettings>
</SfTreeView>
public class MailItem
{
public string Id { get; set; }
public string ParentId { get; set; }
public string FolderName { get; set; }
public bool Expanded { get; set; }
public bool HasSubFolders { get; set; }
public string level { get; set; }
}
protected override void OnInitialized()
{
base.OnInitialized();
MyFolder.Add(new MailItem
{
Id = "1",
FolderName = "Inbox",
HasSubFolders = true,
level ="level1"
});
}
public void dragStop(Syncfusion.Blazor.Navigations.DragAndDropEventArgs args)
{
// get the dropped node data
var dropped_node = this.tree.GetTreeData(args.DroppedNodeData.Id);
//get the dragged node data
var dragged_node = this.tree.GetTreeData(args.DraggedNodeData.Id);
// compare the drag and drop level and prevent the drop of that particular node.
if(dragged_node[0].level != dropped_node[0].level || args.DropIndicator != "e-drop-next" )
{
args.Cancel = true;
}
} |