原創|產品更新|編輯:龔雪|2017-11-07 10:39:03.000|閱讀 262 次
概述:本文主要為大家介紹DevExtreme ASP.NET MVC v17.2即將新增的新的強類型HTML Helpers。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在ASP.NET MVC中構建視圖時,強類型HTML helpers非常有用。像@Html.TextBoxFor(m => m.FirstName)這樣內置的Helper方法已經存在很長時間了,它們提供諸如視圖編譯時間檢查、Razor支持等優點,并支持使用數據注釋來自動配置重要的選項,如驗證規則。
自從我們發布DevExtreme ASP.NET MVC控件以來,它們已經包含了一套HTML helper方法來幫助您完成設置DevExtreme編輯器的工作。 例如在這里,我們創建一個DevExtreme MVC DateBox控件,該控件將從模型綁定到OrderDate字段中:
@Html.DevExtreme().DateBoxFor(m => m.OrderDate)
在下一個主要版本v17.2中,我們擴展了在HTML helpers中使用表達式的功能。已經添加了更多的lambda表達式到更多的小部件中,這允許使用它們來配置項目,如:
因此,DataGrid控件現在可以使用以下語法來聲明:
@(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); })) )
注意:DataGrid <Sale>()和AddFor調用的泛型類型參數配置列和總摘要,不使用任何字符串常量。
以前,該列將使用如下所示的字符串進行聲明:columns.Add().DataField(“CategoryName”);. 由于下面列出的原因,新的lamdba表達式方法更好,使您的工作效率更高。
使用lambda表達式最好的是您可以根據類型在Razor視圖中獲得IntelliSense:
AddFor方法是一個非常好的功能,它推斷有關該屬性的有用信息,這些信息包括屬性名稱和數據類型。我們還處理模型的數據注釋。例如如果Sale類的任何成員使用Display屬性進行注釋,則會自動將其分配為列標題:
public partial class Sale { [Display(Name = "Category")] public string CategoryName { get; set; } [Display(Name = "Product")] public string ProductName { get; set; } [Display(Name = "Sales")] public Nullable<decimal> ProductSales { get; set; } }
如果您的數據是使用驗證屬性進行注釋的,例如[Required],[StringLength],[Range]等,則DevExtreme MVC將遵循并將其應用于DataGrid或TreeList的列驗證選項。 所以,在使用表達式時,會自動為您配置客戶端驗證。
新的強類型HTML helpers還能夠實現'highly-requested'用戶場景,例如“類型化表單控件”示例:
@(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); }); }))
===============================================================
想要進一步了解如何DevExtreme ASP.NET MVC?
掃描關注DevExpress中文網微信公眾號,及時獲取最新動態及最新資訊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網