2016-11-03 56 views
1

碩士子行,我對項目的工作,我需要幫助和指導作爲數據源與目標顯示主子行顯示的DevExpress XtraGrid中使用的ObjectDataSource

我有以下問題,請您幫我

1 )如何將objectdatasource分配給數據網格,以便用戶可以點擊主要行來查看子行

2)一旦網格中顯示主子數據,用戶可以編輯任何列,如果用戶單擊任何列,我必須重新計算價值。怎麼做?

例如:如果用戶正在編輯產品價格,那麼我必須計算淨價格。我不知道如何實現這個功能。在哪裏我必須把我的計算邏輯和如何從Grid調用我的計算邏輯?

請讓我知道什麼是做上述任務的最佳方式。我做了一些研究,但無法找出明顯的例子,在實施

感謝,

回答

0

如果你還沒有,你需要確保你的類是複合。換句話說:

class Child 
{ 
    int ChildId { get; set; } 
} 

class Parent 
{ 
    int ParentId { get; set; } 
    List<Child> Children { get; set; } 
} 

從這裏開始,Dev Express將爲您完成所有繁重的工作。

比方說,你有兩個網格,gridMastergridChild。創建兩個綁定源,bindMasterbindChild

在設計器中,使bindMaster的DataSource成爲Parent類型的對象。爲bindChild創建數據源bindMaster(不是對象Master)並將DataMember屬性設置爲「Child」。

現在,當您刷新主數據和選擇行時,子網格會自動填充到任何主記錄的子節點 - 沒有任何手寫代碼!

這裏是另一個類似的問題的例子:

Devexpress master-detail in 2 gridcontrols

至於產品的價格/淨價格,你有兩個選擇:

  1. 請在未綁定列網格

  2. (我的偏好),直接添加屬性到對象

像這樣的東西會工作:

public double ProductPrice { get; set; } 
public double NetPrice 
{ 
    get { return ProductPrice * Quantity; } 
} 

威力必須對網格視圖火RefreshData()如果在網格中的數據發生變化,但我會測試它首先看是否這是必要的。

+0

感謝您對如何計算netprice的幫助, 我需要網格控制和視圖的進一步幫助,正如您所提到的, class child { public int ChildId {get;組; } 公開列表玩具{get; set;} } public class Toys { public string toyname {get;組; } public int toyprice {get;組; } } ..等等 我想我需要使用一個gridcontrol有多個視圖,你能幫我我怎麼能用單個網格? – TRM

+0

如果您使用單個網格,則更容易 - 只需綁定一個網格,並自動創建主/明細視圖。你有什麼問題? – Hambone

+0

嗨, 我能夠使用單個網格與關卡設計師顯示主行和子行。需要進一步的幫助,按我的要求,我想第一個孩子的信息顯示主排 我怎麼能做到這一點 例如 現在法師一行看起來像下面 ------ | 家長ID | 如果我展開子行看起來像下面 ------ | 孩子ID | 但我想要顯示主行爲 ----------- | --- ParentID,| child id | 如果我展開子行應該看起來像 ----------- 子代碼(子行顯示正常) – TRM

相關問題