【问题标题】:How do I Bind data to a nested DevExpress GridView control?如何将数据绑定到嵌套的 DevExpress GridView 控件?
【发布时间】:2012-08-23 15:44:02
【问题描述】:

我是 DevExpress 控件的新手,遇到了主从网格视图的问题。

我正在使用 DXperience-11.2。

我可以通过执行以下操作轻松地将对象绑定到父 GridView:

var myObject = myObject.Retrieve(id);

parentGridView.DataSource = myObject;
parentGridView.DataBind();

我很难绑定到嵌套的子 GridView。我正在使用以下代码(正如我之前多次使用嵌套 asp:Repeaters 一样),但生成的 var childGrid 对象始终为 null。

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

var myObject2 = myObject2.Retrieve(id);

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

任何帮助将不胜感激。

问候 克里斯

【问题讨论】:

  • 试试 FindByName("parentGridViewName").FindControl("childGridViewName")
  • 嗨,布赖恩,感谢您的快速回复。我似乎没有“FindByName”方法...
  • 您是动态创建 childGridView 的实例还是在网页上?尝试 var childGrid= new ASPxGridView; childGrid.FindControl("childGridView") 然后将您的数据绑定到 childGrid。
  • 你能分享你的标记(至少与问题相关的部分)吗?
  • 网页中的子gridview。我已经尝试过您的建议,但它不起作用,因为它在内存中创建了另一个网格视图,而不是我试图绑定的那个。克里斯

标签: c# asp.net devexpress aspxgridview


【解决方案1】:

好的,感谢您提出的建议,但我设法想出了解决方案。

我将以下事件添加到父 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 对象。

希望这对和我一样的人有帮助!

克里斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多