2012-08-23 80 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对象。

希望这有助于任何与我一样的泡菜!

克里斯