首页 > 解决方案 > 如何异步绑定到 Kendo UI 控件?

问题描述

我有一个包含 2,000 个项目的下拉选择框。我试图像这样绑定它:

@(Html.Kendo().MultiSelect().Name("kendo-dropdown-manager")
                .DataValueField("Value")
                .DataTextField("Text")
                .Placeholder("Select Entity")
                .BindTo(Model.ManagersList)

在我的 Razor 页面中,我异步实现了“获取”:

public class IndexModel : PageModel
{
    public IndexModel()
    {
        this.ManagersList = new List<SelectListItem>();
    }

    public List<SelectListItem> ManagersList { get; private set; }

    public Task OnGetAsync()
    {
        ViewsController viewsController = new ViewsController();
        List<ManagerViewModel> managers = await viewsController.GetManagersAsync();
        this.ManagersList.AddRange(
            from m in managers
            select new SelectListItem
            {
                Value = m.Id.ToString(),
                Text = m.Name
            });
    }
}

当页面出现时,下拉菜单是空的。如果我将“OnGetAsync”更改为完全同步的版本,则会正确填充下拉列表。我的页面有几个类似的控件,我不想同步加载它们。开始操作并让 Kendo 控件在返回结果时捕获结果的正确方法是什么?

标签: kendo-uiasync-await

解决方案


推荐阅读