• 【DevExpress v17.2新功能预告】DevExtreme ASP.NET MVC新的强类型HTML Helpers


    在ASP.NET MVC中构建视图时,强类型HTML helpers非常有用。像@Html.TextBoxFor(m => m.FirstName)这样内置的Helper方法已经存在很长时间了,它们提供诸如视图编译时间检查、Razor支持等优点,并支持使用数据注释来自动配置重要的选项,如验证规则。

    DevExpress v17.2新版预告

    自从我们发布DevExtreme ASP.NET MVC控件以来,它们已经包含了一套HTML helper方法来帮助您完成设置DevExtreme编辑器的工作。 例如在这里,我们创建一个DevExtreme MVC DateBox控件,该控件将从模型绑定到OrderDate字段中:

    @Html.DevExtreme().DateBoxFor(m => m.OrderDate)

    更多的Lambda表达式

    在下一个主要版本v17.2中,我们扩展了在HTML helpers中使用表达式的功能。已经添加了更多的lambda表达式到更多的小部件中,这允许使用它们来配置项目,如:

    • DataGrid and TreeList columns
    • DataGrid summaries
    • PivotGrid fields
    • Items of our Form control

    因此,DataGrid控件现在可以使用以下语法来声明:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @(Html.DevExtreme().DataGrid<sale>()
    .Columns(columns => {
    columns.AddFor(m => m.CategoryName);
    columns.AddFor(m => m.ProductName);
    columns.AddFor(m => m.ProductSales);
    })
    .Summary(s => s.TotalItems(total => {
    total
    .AddFor(m => m.ProductSales)
    .SummaryType(SummaryType.Sum);
    }))
    )</sale>

    注意:DataGrid ()和AddFor调用的泛型类型参数配置列和总摘要,不使用任何字符串常量。

    以前,该列将使用如下所示的字符串进行声明:columns.Add().DataField(“CategoryName”);. 由于下面列出的原因,新的lamdba表达式方法更好,使您的工作效率更高。

    支持智能感知

    使用lambda表达式最好的是您可以根据类型在Razor视图中获得IntelliSense:

    DevExpress v17.2新版预告

    数据注释

    AddFor方法是一个非常好的功能,它推断有关该属性的有用信息,这些信息包括属性名称和数据类型。我们还处理模型的数据注释。例如如果Sale类的任何成员使用Display属性进行注释,则会自动将其分配为列标题:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public partial class Sale {
    [Display(Name = "Category")]
    public string CategoryName { getset; }
     
    [Display(Name = "Product")]
    public string ProductName { getset; }
     
    [Display(Name = "Sales")]
    public Nullable<decimal> ProductSales { getset; }
    }</decimal>
    DevExpress v17.2新版预告

    更好的验证

    如果您的数据是使用验证属性进行注释的,例如[Required],[StringLength],[Range]等,则DevExtreme MVC将遵循并将其应用于DataGrid或TreeList的列验证选项。 所以,在使用表达式时,会自动为您配置客户端验证。

    Typed Form控件

    新的强类型HTML helpers还能够实现'highly-requested'用户场景,例如“类型化表单控件”示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @(Html.DevExtreme().Form<employee>().Items(items => {
    items.AddSimpleFor(m => m.FirstName);
    items.AddSimpleFor(m => m.LastName);
     
    items.AddGroup().Caption("Address").Items(addressItems => {
    addressItems.AddSimpleFor(m => m.Address);
    addressItems.AddSimpleFor(m => m.Region);
    addressItems.AddSimpleFor(m => m.PostalCode);
    });
    }))</employee>

    ===============================================================

    想要进一步了解如何DevExtreme ASP.NET MVC?

    DevExpress v17.2即将发布,更多精彩预告请持续关注DevExpress中文网!

    扫描关注DevExpress中文网微信公众号,及时获取最新动态及最新资讯

    DevExpress中文网微信
  • 相关阅读:
    npx 是什么?
    JavaScript 的内置对象和浏览器对象
    JS构造函数new的过程
    git 设置和取消代理
    npm配置镜像、设置代理
    SQL 注入攻击案例
    javascript:void(0);的含义以及使用场景
    让所有网页图片跳起舞来的代码
    针对Web的攻击技术
    网站常见的鉴权认证方式有哪几种?
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/7798091.html
Copyright © 2020-2023  润新知