分享一些最近使用 DevExpress 元件中的幾個用法。
Scenario
假設
一個類別(Category)有多種商品(Product)
在 Product 的 Grid View 內需要顯示 Category 的名稱,而 Product 資料表內只有存放 Category 的 id
,那我們怎麼在顯示的時候是 name,存放的時候是 _id_ 呢?
起手式
Model
那麼我們 Model 部分會是
Category.cs
1 | public class Category { |
Product.cs
1 | public class Product { |
DBContext.cs
1 | public class DBContext : DbContext { |
View
這邊就不說明全部的架構,只提 Partial View 內 GridView 的參數設定。
_listGridViewPartial.cshtml
1 | @{ |
說明
先從 Context 開始
DBContext.cs
透過 id 在 Category 找到名稱
1 | public string getName(int id) { |
View
回到 GridView 中。
GridView 如何將 data source 的資料 bound 在每個 column ?
答案是,它利用 FieldName 這個屬性來辨別 data source 的每個欄位。
範例中,GridView 如果有需要做 資料的新增,存回資料表的是 Category_Id,所以將 Category_Id 與 column.FieldName 做綁定,那麼顯示的部份呢?
在 GridView 的 settings 內用 CustomColumnDisplayText
把 DevExpress.Web.ASPxGridViewColumnDisplayTextEventArgs 的 DisplayText 做改變就可以辦到,如下:
1 | @{ |