2012-08-23 125 views
0

我是DevExpress控件的新手,並且遇到了master-detail gridview的問題。如何將數據綁定到嵌套的DevExpress GridView控件?

我正在使用DXperience-11.2。

我可以很容易地通過執行以下操作對象綁定到父GridView控件:

var myObject = myObject.Retrieve(id); 

parentGridView.DataSource = myObject; 
parentGridView.DataBind(); 
我有困難結合到嵌套子GridView控件

。我使用下面的代碼(正如我以前使用嵌套的asp:Repeaters多次),但生成的var childGrid對象始終爲空。

var childGrid = (ASPxGridView)parentGridView.FindControl("childGridView"); 

var myObject2 = myObject2.Retrieve(id); 

childGrid.DataSource = myObject2; 
childGrid .DataBind(); 

任何幫助將不勝感激。

問候 克里斯

+0

嘗試FindByName( 「parentGridViewName」)的FindControl( 「childGridViewName」) – Brian

+0

喜布賴恩感謝您的快速反應。我似乎沒有一個'FindByName'方法... – Kris

+0

是你動態創建一個childGridView的實例還是它在網頁上?試試var childGrid = new ASPxGridView; childGrid.FindControl(「childGridView」)然後綁定你的數據到childGrid。 – Brian

回答

0

好感謝張貼的建議,但我設法拿出解決方案。

我添加了以下事件父gridview的...

OnBeforePerformDataSelect="detailGrid_DataSelect" 

此事件在你點擊父GridView中一行。父網格視圖行擴展並且事件觸發。

然後在我後面的代碼我做了下面的代碼...

protected void detailGrid_DataSelect(object sender, EventArgs e) 
    { 
     var myObject2 = myObject2.Retrieve(id); 

     ASPxGridView grid = (sender as ASPxGridView); 
     grid.DataSource = myObject2; 
    } 

首先,我取回我想綁定到嵌套/子GridView控件的對象。然後將對象發件人轉換爲一個ASPxGridView對象並綁定我檢索到的數據對象。

我錯了,因爲我試圖在此事件中使用.FindControl方法找到嵌套的GridView控件,而實際上對象發件人是嵌套的GridView對象。

希望這有助於任何與我一樣的泡菜!

克里斯