面向ASP的Telerik UI。网络核心免费下载30天试用版

虚拟化

虚拟化对于显示大型数据集很有用。

UI虚拟化技术在小部件的弹出列表中使用固定数量的列表项,而不考虑数据集的大小。滚动列表时,小部件重用现有项来显示相关数据,而不是创建新项。有关可运行示例,请参阅下拉列表中的虚拟化演示

DropDownList支持绑定到基本值类型或枚举值类型。

  1. 创建ValueMapper行动。

    public IActionResult Index() {return View(new ProductViewModel {ProductID = 4, ProductName = "ProductName4"});} [HttpPost] public IActionResult ProductsVirtualization_Read([DataSourceRequest] DataSourceRequest请求){返回Json(GetProducts().ToDataSourceResult(请求));} public IActionResult Products_ValueMapper(int[] values) {var indices = new List();if (values != null && values. any ()) {var index = 0;foreach (var product in GetProducts()) {if (values.Contains(product. productid)) {indexes . add (index);} index += 1;}}返回Json(索引);}私有静态IEnumerable GetProducts() {var products = Enumerable。范围(0,2000)。Select(i => new ProductViewModel {ProductID = i, ProductName = "ProductName" + i});返回产品; }
  2. 向视图添加一个DropDownList,并将其配置为使用虚拟化。

    @ model MvcApplication1.Models。ProductViewModel @ (Html.Kendo()。DropDownListFor(m => m.ProductID) .Filter("contains") .DataTextField("ProductName") .DataValueField("ProductID") .OptionLabel("Select product...") .DataSource(source => { source.Custom() .ServerFiltering(true) .ServerPaging(true) .PageSize(80) .Type("aspnetmvc-ajax") .Transport(transport => { transport.Read("ProductsVirtualization_Read", "Home"); }) .Schema(schema => { schema.Data("Data") .Total("Total"); }); }) .Virtual(v => v.ItemHeight(26).ValueMapper("valueMapper")) ) 
  3. 如果AutoBind下拉列表的选项设置为并且您需要小部件来显示所选的模型值,设置文本配置选项,将字段设置为DataTextField文本选择。

    @ model MvcApplication1.Models。ProductViewModel @ (Html.Kendo()。DropDownListFor(m => m.ProductID) .AutoBind(false) .Text(Model.ProductName) .DataTextField("ProductName") // Additional configuration. )

    另请参阅

在本文中
Baidu
map