《Blazor》的teleerik UI免费下载30天试用版

TreeList工具栏

树列表提供了一个工具栏,您可以在其中添加各种不绑定到具体行的操作。

要使用工具栏,请定义TreeListToolBarTemplate树列表的标签。在其中,您可以使用任意HTML和组件来获得所需的布局TreeListCommandButton中的实例,您可以在这些按钮中了解更多有关可用功能的信息命令列文章)。

工具栏未与数据源中的项关联。的ParentItem的单击事件处理程序参数上的字段TreeListCommandButton永远都是,和编辑更新取消命令不能使用它。

在本文中,您将学习如何使用:

内置命令

树列表提供内置命令,您可以通过它的工具栏调用这些命令。要使用它们,请设置命令属性将按钮设置为命令名称。内置命令名是:

  • 添加-开始在树列表中插入一个新项目。

有关使用工具栏插入新项的示例,请参见树列表编辑概述篇文章。

自定义命令

您可以使用工具栏添加按钮来调用特定于您的应用程序的操作。

如何在树列表工具栏中定义自定义命令

@result  Fire My Command         @code {public List Data {get;设置;} //示例自定义命令处理字符串结果;async任务MyCommandFromToolbar(TreeListCommandEventArgs args){//注意- args。项object is null because the command item is not associated with an item result = "my custom toolbar command fired at " + DateTime.Now.ToString(); } // sample model public class Employee { public int Id { get; set; } public string Name { get; set; } public string EmailAddress { get; set; } public DateTime HireDate { get; set; } public List DirectReports { get; set; } public bool HasChildren { get; set; } } // data generation public int LastId { get; set; } = 1; protected override async Task OnInitializedAsync() { Data = await GetTreeListData(); } async Task> GetTreeListData() { List data = new List(); for (int i = 1; i < 15; i++) { Employee root = new Employee { Id = LastId, Name = $"root: {i}", EmailAddress = $"{i}@example.com", HireDate = DateTime.Now.AddYears(-i), DirectReports = new List(), HasChildren = true }; data.Add(root); LastId++; for (int j = 1; j < 4; j++) { int currId = LastId; Employee firstLevelChild = new Employee { Id = currId, Name = $"first level child {j} of {i}", EmailAddress = $"{currId}@example.com", HireDate = DateTime.Now.AddDays(-currId), DirectReports = new List(), HasChildren = true }; root.DirectReports.Add(firstLevelChild); LastId++; for (int k = 1; k < 3; k++) { int nestedId = LastId; firstLevelChild.DirectReports.Add(new Employee { Id = LastId, Name = $"second level child {k} of {j} and {i}", EmailAddress = $"{nestedId}@example.com", HireDate = DateTime.Now.AddMinutes(-nestedId) }); ; LastId++; } } } return await Task.FromResult(data); } }

单击工具栏中的自定义命令按钮后,上面代码片段的结果

Blazor TreeList自定义命令工具栏

自定义布局

您可以添加自己的HTML和组件,在树列表标题中创建更复杂的布局,以满足您的业务需求。您仍然可以使用树列表命令按钮,以及其他组件和逻辑。

自定义树列表工具栏布局

@*为简洁起见,本示例中未实现插入操作*@ @ @result  < TelerikDropDownList Data="@(new List() {"first", "second", "third"})" TValue="string" TItem="string" ValueChanged="@((string itm) => result = itm) "> 
点击我
@code {public List Data {get;设置;} //示例自定义命令处理字符串结果; async Task MyCommandFromToolbar(TreeListCommandEventArgs args) { //note - the args.Item object is null because the command item is not associated with an item result = "my custom toolbar command fired at " + DateTime.Now.ToString(); } // sample model public class Employee { public int Id { get; set; } public string Name { get; set; } public string EmailAddress { get; set; } public DateTime HireDate { get; set; } public List DirectReports { get; set; } public bool HasChildren { get; set; } } // data generation public int LastId { get; set; } = 1; protected override async Task OnInitializedAsync() { Data = await GetTreeListData(); } async Task> GetTreeListData() { List data = new List(); for (int i = 1; i < 15; i++) { Employee root = new Employee { Id = LastId, Name = $"root: {i}", EmailAddress = $"{i}@example.com", HireDate = DateTime.Now.AddYears(-i), DirectReports = new List(), HasChildren = true }; data.Add(root); LastId++; for (int j = 1; j < 4; j++) { int currId = LastId; Employee firstLevelChild = new Employee { Id = currId, Name = $"first level child {j} of {i}", EmailAddress = $"{currId}@example.com", HireDate = DateTime.Now.AddDays(-currId), DirectReports = new List(), HasChildren = true }; root.DirectReports.Add(firstLevelChild); LastId++; for (int k = 1; k < 3; k++) { int nestedId = LastId; firstLevelChild.DirectReports.Add(new Employee { Id = LastId, Name = $"second level child {k} of {j} and {i}", EmailAddress = $"{nestedId}@example.com", HireDate = DateTime.Now.AddMinutes(-nestedId) }); ; LastId++; } } } return await Task.FromResult(data); } }

更改下拉菜单并单击自定义按钮后,上面代码片段的结果。

Blazor自定义工具栏布局

另请参阅

在本文中
Baidu
map