DevExtreme ASP.NET MVC入门指南 - 将数据绑定到控件(CLR对象)
所有使用数据集合操作的DevExtreme ASP.NET MVC控件都有DataSource()方法,与其他控制方法不同,DataSource()在DevExtreme JavaScript API中没有直接对应物,尽管它的用途类似于DevExtreme数据层中的 Store。您可以使用 DataSource() 方法来配置来自不同来源的数据访问:
- CLR 对象
- 控制器
- JSON 格式的只读数据
- 数据
- OLAP 多维数据集
数据绑定控件(PivotGrid 除外)也具有 DataSourceOptions() 方法,它公开了一个构建器,用于配置初始排序、过滤、分组和其他数据整形操作,构建器的方法具有本节中描述的 JavaScript API 对应项。
CLR 对象
您可以将DevExtreme ASP.NET MVC 控件绑定到 CLR 对象的集合:Array、List 或 IEnumerable。
这些集合…
- 可以来自控制器(通过 Model 或 ViewData);
- 可以嵌入到 Razor 文件中(直接在 HTML 帮助器声明中或在 @functions 块中)。
集合作为 ArrayStore 传递给客户端,请注意,集合数据应该是 JSON 可序列化的。
示例:将控件绑定到数组
Razor C#
@(Html.DevExtreme().Chart() .DataSource(new[] { new { Day = "Monday", Oranges = 3 }, new { Day = "Tuesday", Oranges = 2 }, new { Day = "Wednesday", Oranges = 3 }, new { Day = "Thursday", Oranges = 4 }, new { Day = "Friday", Oranges = 6 }, new { Day = "Saturday", Oranges = 11 }, new { Day = "Sunday", Oranges = 4 } }) )
Razor VB
@(Html.DevExtreme().Chart() _ .DataSource({ New With {.Day = "Monday", .Oranges = 3}, New With {.Day = "Tuesday", .Oranges = 2}, New With {.Day = "Wednesday", .Oranges = 3}, New With {.Day = "Thursday", .Oranges = 4}, New With {.Day = "Friday", .Oranges = 6}, New With {.Day = "Saturday", .Oranges = 11}, New With {.Day = "Sunday", .Oranges = 4} }) )
示例:将控件绑定到模型
本示例代码展示了如何将 MultiView 控件绑定到 Model。
View
Razor C#
@model List<DevExtreme.MVC.Demos.Models.Store> @(Html.DevExtreme().MultiView() .DataSource(Model) )
Razor VB
@ModelType List(Of DevExtreme.MVC.Demos.Models.Store) @(Html.DevExtreme().MultiView() _ .DataSource(Model) )
Model
C#
namespace DevExtreme.MVC.Demos.Models.SampleData { public partial class SampleData { public static Store[] Stores = new[] { new Store { ID = 1, CompanyName = "SuprMart", Address = "702 SW 8th Street", City = "Bentonville", }, new Store { ID = 2, CompanyName = "El'Depot", Address = "2455 Paces Ferry Road NW", City = "Atlanta", }, new Store { ID = 3, CompanyName = "K&S Music", Address = "1000 Nicllet Mall", City = "Minneapolis", } }; } }
VB
Namespace DevExtreme.MVC.Demos.Models.SampleData Partial Public Class SampleData Public Shared Stores As Store() = { New Store With { .ID = 1, .CompanyName = "SuprMart", .Address = "702 SW 8th Street", .City = "Bentonville" }, New Store With { .ID = 2, .CompanyName = "El'Depot", .Address = "2455 Paces Ferry Road NW", .City = "Atlanta" }, New Store With { .ID = 3, .CompanyName = "K&S Music", .Address = "1000 Nicllet Mall", .City = "Minneapolis" } } End Class End Namespace
Controller
C#
using DevExtreme.MVC.Demos.Models.SampleData; namespace DevExtreme.MVC.Demos.Controllers { public class MultiViewController : Controller { public ActionResult Overview() { return View(SampleData.Stores); } } }
VB
Imports DevExtreme.MVC.Demos.Models.SampleData Namespace DevExtreme.MVC.Demos.Controllers Public Class MultiViewController Inherits Controller Public Function Overview() As ActionResult Return View(SampleData.Stores) End Function End Class End Namespace
DataSource 方法重载接受 string[] 键参数,因此您的代码如下所示:
C#
.DataSource(Model.YourCollection, "KeyFieldName")
VB
.DataSource(Model.YourCollection, "KeyFieldName")
DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NET Core或Vue,DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中使用。 该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。
DevExpress技术交流群6:600715373 欢迎一起进群讨论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2021-05-12 高性能HTML5/JS开发框架DevExtreme 新版——v20.2.7发布
2021-05-12 跨平台UI开发框架DevExpress XAF 拥有超强性能,你Get了吗?
2020-05-12 ASP.NET界面开发技巧放送,轻松自定义Grid运行时编辑表单布局