@page "/"
@using Syncfusion.Blazor.Kanban
@using System.Diagnostics
<SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
<KanbanEvents TValue="TasksModel" DragStart="@onDragStart" DragStop="@onDragStop"></KanbanEvents>
<KanbanColumns>
<KanbanColumn HeaderText="Backlog" KeyField=@(new List<string> { "Open" })></KanbanColumn>
<KanbanColumn HeaderText="In Progress" KeyField=@(new List<string> { "InProgress" })></KanbanColumn>
<KanbanColumn HeaderText="Testing" KeyField=@(new List<string> { "Testing" })></KanbanColumn>
<KanbanColumn HeaderText="Done" KeyField=@(new List<string> { "Close" })></KanbanColumn>
</KanbanColumns>
<KanbanCardSettings HeaderField="Id" ContentField="Summary"></KanbanCardSettings>
<KanbanSwimlaneSettings KeyField="Assignee" AllowDragAndDrop="true"></KanbanSwimlaneSettings>
</SfKanban>
@code {
public string assignee;
public string id;
private void onDragStart(Syncfusion.Blazor.Kanban.DragEventArgs<TasksModel> args)
{
id = args.Data[0].Id;
assignee = args.Data[0].Assignee;
}
private void onDragStop(Syncfusion.Blazor.Kanban.DragEventArgs<TasksModel> args)
{
if(args.Data[0].Assignee != assignee)
{
Debug.WriteLine(id + " Cannot be plaaced into " + args.Data[0].Assignee + " Swimlane");
// We can prevent the card drop action by setting up args.Cancel = true.
//args.Cancel = true;
}
}
} |
private void onDragStart(Syncfusion.Blazor.Kanban.DragEventArgs<TasksModel> args)
{
status = args.Data[0].Status;
}
private void onDragStop(Syncfusion.Blazor.Kanban.DragEventArgs<TasksModel> args)
{
if(args.Data[0].Assignee != assignee || args.Data[0].Status != status)
{
// Preventing the drag action between the columns
args.Cancel = true;
}
} |