【DevExpress v17.2新功能預告】DevExtreme ASP.NET MVC新的強類型HTML Helpers

在ASP.NET MVC中構建視圖時,強類型HTML helpers很是有用。像@Html.TextBoxFor(m => m.FirstName)這樣內置的Helper方法已經存在很長時間了,它們提供諸如視圖編譯時間檢查、Razor支持等優勢,並支持使用數據註釋來自動配置重要的選項,如驗證規則。express

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表達式到更多的小部件中,這容許使用它們來配置項目,如:ui

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

所以,DataGrid控件如今可使用如下語法來聲明:spa

13d

2code

3orm

4blog

5ci

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中文網微信

相關文章
相關標籤/搜索