Telerik Blazor TreeList SelectedItemsChanged 异步
Telerik Blazor TreeList SelectedItemsChanged async
我有这个示例代码:https://blazorrepl.telerik.com/Qwumvklf39dvgfer21
在树列表中:
<TelerikTreeList Data="@Data"
IdField="EmployeeId"
ParentIdField="ReportsTo"
Pageable="false"
SelectionMode="@SelectionMode"
SelectedItems="@SelectedItems"
SelectedItemsChanged="@(async (IEnumerable<EmployeeDirectoryDto> itemsList) => await HandleSelectionChange(itemsList))"
Height="300px">
<TreeListColumns>
<TreeListCheckboxColumn SelectAll="@ShowSelectAll" SelectChildren="true"></TreeListCheckboxColumn>
<TreeListColumn Field="FirstName" Title="First Name" Width="350px" Expandable="true"></TreeListColumn>
<TreeListColumn Field="LastName" Title="Last Name"></TreeListColumn>
<TreeListColumn Field="HireDate" Title="Hire Date" Width="200px"></TreeListColumn>
</TreeListColumns>
</TelerikTreeList>
和处理程序:
private async Task HandleSelectionChange(IEnumerable<EmployeeDirectoryDto> selectedFilters)
{
await Task.Delay(2000);//Simulate http call
SelectedItems = selectedFilters.AsEnumerable<EmployeeDirectoryDto>();
}
场景:Select 复选框 select 所有项目。
结果:项目在内部得到 selected,但 UI 仍未显示任何项目 selected。
如果 async/await 被删除,那么它将按预期工作并且所有项目都得到 selected。
我添加了一个 Task.Delay 只是为了模拟在每次 selection 变化时发生的一些长 运行 http 调用。
我在这里错过了什么?
它不能异步工作,但我认为他们正在添加一个 OnRowClick 事件,该事件将在 3.1 中正常工作。
在此期间,您需要执行以下操作:
private void HandleSelectionChange(IEnumerable<EmployeeDirectoryDto> selectedFilters)
{
InvokeAsync(() => Task.Delay(2000));//Simulate http call
SelectedItems = selectedFilters.AsEnumerable<EmployeeDirectoryDto>();
}
我有这个示例代码:https://blazorrepl.telerik.com/Qwumvklf39dvgfer21
在树列表中:
<TelerikTreeList Data="@Data"
IdField="EmployeeId"
ParentIdField="ReportsTo"
Pageable="false"
SelectionMode="@SelectionMode"
SelectedItems="@SelectedItems"
SelectedItemsChanged="@(async (IEnumerable<EmployeeDirectoryDto> itemsList) => await HandleSelectionChange(itemsList))"
Height="300px">
<TreeListColumns>
<TreeListCheckboxColumn SelectAll="@ShowSelectAll" SelectChildren="true"></TreeListCheckboxColumn>
<TreeListColumn Field="FirstName" Title="First Name" Width="350px" Expandable="true"></TreeListColumn>
<TreeListColumn Field="LastName" Title="Last Name"></TreeListColumn>
<TreeListColumn Field="HireDate" Title="Hire Date" Width="200px"></TreeListColumn>
</TreeListColumns>
</TelerikTreeList>
和处理程序:
private async Task HandleSelectionChange(IEnumerable<EmployeeDirectoryDto> selectedFilters)
{
await Task.Delay(2000);//Simulate http call
SelectedItems = selectedFilters.AsEnumerable<EmployeeDirectoryDto>();
}
场景:Select 复选框 select 所有项目。 结果:项目在内部得到 selected,但 UI 仍未显示任何项目 selected。
如果 async/await 被删除,那么它将按预期工作并且所有项目都得到 selected。 我添加了一个 Task.Delay 只是为了模拟在每次 selection 变化时发生的一些长 运行 http 调用。
我在这里错过了什么?
它不能异步工作,但我认为他们正在添加一个 OnRowClick 事件,该事件将在 3.1 中正常工作。
在此期间,您需要执行以下操作:
private void HandleSelectionChange(IEnumerable<EmployeeDirectoryDto> selectedFilters)
{
InvokeAsync(() => Task.Delay(2000));//Simulate http call
SelectedItems = selectedFilters.AsEnumerable<EmployeeDirectoryDto>();
}