多列标题
Treelist允许您在一个标题下堆叠多个列,以便为最终用户可视化地对相关字段进行分组。
使用多个列标头:
- 定义一个
TreeListColumn
实例为所需的每个多列标头。设置它标题
或HeaderTemplate
. - 在其
> <列
嵌套标记后,添加希望其包含的列。
属性,虽然可以设置此类多列标题列的所有参数,但它只支持和使用标题
,和嵌套HeaderTemplate
而且列
标签(模板)。
您将在本文中找到以下部分:
基本的例子
下面的代码片段展示了如何在多列标头中对Treelist中的列进行分组。您还可以在根级别使用“常规”列,而不是所有列都必须是列组。
树列表中的多个列标头
@*查看有自己的Columns集合的根级TreeListColumn标签*@ @code {public List TreeListData {get;设置;}公共类客户{公共int Id{获取;设置;}公共int? ParentId { get; set; } public string PasswordHash { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string CompanyName { get; set; } public bool HasCompanyContract { get; set; } public string Email { get; set; } public string Phone { get; set; } public string City { get; set; } } // generation of dummy data protected override void OnInitialized() { TreeListData = GenerateData(); } List GenerateData() { var data = new List(); string[] fNames = new string[] { "Nancy", "John", "Orlando", "Jane", "Bob", "Juan" }; string[] lNames = new string[] { "Harris", "Gates", "Smith", "Caprio", "Gash", "Gee" }; string[] cNames = new string[] { "Acme", "Northwind", "Contoso" }; string[] cities = new string[] { "Denver", "New York", "LA", "London", "Paris", "Helsinki", "Moscow", "Sofia" }; Random rnd = new Random(); for (int i = 0; i < 150; i++) { string fName = fNames[rnd.Next(0, fNames.Length)]; string lName = lNames[rnd.Next(0, lNames.Length)]; string cName = cNames[rnd.Next(0, cNames.Length)]; data.Add(new Customer { Id = i, ParentId = GetParentId(i), PasswordHash = "not shown", FirstName = fName, LastName = lName, CompanyName = cName, HasCompanyContract = i % 3 == 0, Email = $"{fName}.{lName}@{cName}.com".ToLowerInvariant(), Phone = $"{rnd.Next(100, 999)}-555-{rnd.Next(100, 999)}", City = cities[rnd.Next(0, cities.Length)] }); } return data; } int? GetParentId(int index) { if (index % 4 == 0) return null; return Math.Abs(index - (index % 4)); } }
具有其他功能的行为
本节解释使用多列标题如何改变其他组件功能的行为,或者某些特性如何使用多列标题。如果没有列出某个特性,则不受影响。
宽度
的宽度
参数的多列标题被忽略,它的宽度取决于它的子列宽度的和。
排序,过滤,分组,编辑
这些功能不适用于多列标题列,而只适用于实际的子列。
用于多列标头的列仅用于表示目的。它不使用场
参数,不能执行筛选、排序、分组、编辑等数据源操作,因为这些操作将跨越多个字段,而这是不可能的。
共享组标题下的单个列可以像往常一样进行排序、筛选、分组和编辑。
调整
多列标题可以调整大小,调整大小类似于标准列。
共享组标题下的单个列也可以调整大小。
的可调整大小的
参数为单个列和列组标头提供。
重新排序
列重排序遵循以下规则:
- 根多头列可以与其他根多头列重新排序。
- 重新排序一组列也会移动它的所有子列。
- 单个列只能在其父组内重新排序。
- 不同父列(和/或在不同级别上)的子列不能重新排序。
的Reordable
参数为单个列和列组标头提供。
列菜单
多标题列不会显示在上一级单独列的列选择器的列列表中。如果隐藏所有子列,父列也将隐藏。
状态管理
多标题列的状态处理方式与标准列相同。状态中的列按照定义的顺序列在平面列表中。例如,对于以下设置:
该州将:
列状态索引 | 列 |
---|---|
0 | 第1列 |
1 | 专栏1.1 |
2 | 专栏1.2 |
3. | 第2列 |
注意,这个顺序与blazor框架初始化列组件的顺序不同,它的目标是类似于与列定义匹配的人类可读的顺序。
锁定列
可以通过它来锁定整个多列标头锁着的
参数。这样做将锁定它的所有子列。
因此,我们建议您不要设置锁= false
对于锁定父列的子列,可以考虑设置可锁定的= false
以防止用户解开它们,得到次优的布局。设置锁= true
不支持子列。
键盘导航
多列标题中的键盘导航遵循Excel的功能。