<h3>Kanban board complex data binding for the ContentField</h3>
<SfKanban TValue="changedData" @ref="Kanbanobj" KeyField="@nameof(changedData.Status)" AllowDragAndDrop="true" DataSource=@Tasks >
<KanbanEvents TValue="changedData"></KanbanEvents>
<KanbanColumns>
<KanbanColumn HeaderText="Active" KeyField="@(new List<string>() { nameof(StatusActiveModels.Open) })" />
<KanbanColumn HeaderText="Disabled" KeyField="@(new List<string>() { nameof(StatusActiveModels.Validate) })" />
<KanbanColumn HeaderText="Deleted" KeyField="@(new List<string>() { nameof(StatusActiveModels.Close) })" />
<KanbanCardSettings HeaderField="@nameof(changedData.Title)" ContentField="@nameof(changedData.Summary)" />
</SfKanban>
<h3>Swimlane Kanban board complex data binding for TextField</h3>
<SfKanban TValue="swimlanedData" KeyField="Status" DataSource="@swimlaneTasks">
<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" TextField="@nameof(swimlanedData.AssigneeName)"></KanbanSwimlaneSettings>
</SfKanban>
@code {
public List<changedData> Tasks = new List<changedData>();
public List<swimlanedData> swimlaneTasks = new List<swimlanedData>();
List<changedData> kanbanData = new List<changedData>();
List<swimlanedData> swimlaneData = new List<swimlanedData>();
public List<TasksModel> complexTasks = new List<TasksModel>()
{
new TasksModel { Id = "Task 1", Title = "BLAZ-29001", Status = new StatusModel() { keyfield = "Open" }, Summary = "Analyze the new requirements gathered from the customer.", Assignee = "Nancy Davloio", Type = "Story", Priority = "Low" },
new TasksModel { Id = "Task 2", Title = "BLAZ-29002", Status = new StatusModel() { keyfield = "Validate" }, Summary = "Improve application performance", Assignee = "Andrew Fuller", Type = "Improvement", Priority = "Normal" },
new TasksModel { Id = "Task 3", Title = "BLAZ-29003", Status = new StatusModel() { keyfield = "Open" }, Summary = "Arrange a web meeting with the customer to get new requirements.", Assignee = "Janet Leverling", Type = "Others", Priority = "Critical" },
new TasksModel { Id = "Task 4", Title = "BLAZ-29004", Status = new StatusModel() { keyfield = "Close" }, Summary = "Fix the issues reported in the IE browser.", Assignee = "Janet Leverling", Type = "Bug", Priority = "Release Breaker" },
new TasksModel { Id = "Task 5", Title = "BLAZ-29005", Status = new StatusModel() { keyfield = "Validate" }, Summary = "Fix the issues reported by the customer.", Assignee = "Steven walker", Type = "Bug", Priority = "Low" },
new TasksModel { Id = "Task 6", Title = "BLAZ-29006", Status = new StatusModel() { keyfield = "Validate" }, Summary = "Fix the issues reported in Safari browser.", Assignee = "Nancy Davloio", Type = "Others", Priority = "Low" },
new TasksModel { Id = "Task 7", Title = "BLAZ-29007", Status = new StatusModel() { keyfield = "Close" }, Summary = "Test the application in the IE browser.", Assignee = "Margaret hamilt", Type = "Improvement", Priority = "Low" },
new TasksModel { Id = "Task 8", Title = "BLAZ-29008", Status = new StatusModel() { keyfield = "Validate" }, Summary = "Validate the issues reported by the customer.", Assignee = "Steven walker", Type = "Story", Priority = "Release Breaker" },
new TasksModel { Id = "Task 9", Title = "BLAZ-29009", Status = new StatusModel() { keyfield = "Open" }, Summary = "Show the retrieved data from the server in grid control.", Assignee = "Margaret hamilt", Type = "Bug", Priority = "Release Breaker" },
};
public List<SwimlaneTasksModel> kanbanswimlaneTasks = new List<SwimlaneTasksModel>()
{
new SwimlaneTasksModel { Id = "Task 1", Title = "BLAZ-29001", Status = "Open", Summary = "Analyze the new requirements gathered from the customer.", Assignee = "Nancy Davloio", AssigneeName = new SwimlaneAssignee() { name = "Nancy" } },
new SwimlaneTasksModel { Id = "Task 2", Title = "BLAZ-29002", Status = "InProgress", Summary = "Improve application performance", Assignee = "Andrew Fuller", AssigneeName = new SwimlaneAssignee() { name = "Andrew" } },
new SwimlaneTasksModel { Id = "Task 3", Title = "BLAZ-29003", Status = "Open", Summary = "Arrange a web meeting with the customer to get new requirements.", Assignee = "Janet Leverling", AssigneeName = new SwimlaneAssignee() { name = "Janet" } },
new SwimlaneTasksModel { Id = "Task 4", Title = "BLAZ-29004", Status = "InProgress", Summary = "Fix the issues reported in the IE browser.", Assignee = "Janet Leverling", AssigneeName = new SwimlaneAssignee() { name = "Janet" } },
new SwimlaneTasksModel { Id = "Task 5", Title = "BLAZ-29005", Status = "Review", Summary = "Fix the issues reported by the customer.", Assignee = "Steven walker", AssigneeName = new SwimlaneAssignee() { name = "Steven" } },
new SwimlaneTasksModel { Id = "Task 6", Title = "BLAZ-29006", Status = "Review", Summary = "Fix the issues reported in Safari browser.", Assignee = "Nancy Davloio", AssigneeName = new SwimlaneAssignee() { name = "Nancy" } },
new SwimlaneTasksModel { Id = "Task 7", Title = "BLAZ-29007", Status = "Close", Summary = "Test the application in the IE browser.", Assignee = "Margaret hamilt", AssigneeName = new SwimlaneAssignee() { name = "Margaret" } }
};
protected override void OnInitialized()
{
for (var b = 0; b < complexTasks.Count; b++)
{
var data = complexTasks[b];
changedData cardObj = new changedData()
{
Id = data.Id,
Title = data.Title,
Status = data.Status.keyfield,
Assignee = data.Assignee,
Priority = data.Priority,
Summary = data.Summary,
Type = data.Type,
};
kanbanData.Add(cardObj);
}
this.Tasks = kanbanData;
for (var b = 0; b < kanbanswimlaneTasks.Count; b++)
{
var data = kanbanswimlaneTasks[b];
swimlanedData swimlaneObj = new swimlanedData()
{
Id = data.Id,
Title = data.Title,
Status = data.Status,
Summary = data.Assignee,
Assignee = data.Assignee,
AssigneeName = data.AssigneeName.name
};
swimlaneData.Add(swimlaneObj);
}
this.swimlaneTasks = swimlaneData;
}
} |