c#嵌套网格多次加载

c# Nested grid loads multiple times

我正在使用 telerik radgrid。我以编程方式绑定网格。网格加载正确但嵌套网格加载多次。(嵌套网格中列数的次数)。下面是我的代码

GridTableView tableViewOrders = new GridTableView(grid);
foreach (Application app in isParentApp)
{
    DataTable tbl = new DataTable("nestedTable_" + app.AppId);
    objGridList = GetGridList(app.AppId);
    foreach (var nestedRow in objGridList)
    {
       GridRelationFields relationFields = new GridRelationFields();
            relationFields.MasterKeyField = "AppId";
            relationFields.DetailKeyField = "AppId";
            tableViewOrders.ParentTableRelation.Add(relationFields);
            GridBoundColumn boundColumn = new GridBoundColumn();
            boundColumn.DataField = nestedRow.ColName;
            boundColumn.HeaderText = nestedRow.ColName;
            tableViewOrders.Columns.Add(boundColumn);
            grid.MasterTableView.DetailTables.Add(tableViewOrders);
            tbl.Columns.Add(nestedRow.ColName);
    }
foreach(var rows in totalRows)
 {
        DataRow nestedDtRow = tbl.NewRow();
        nestedDtRow["AppId"] = app.AppId;
    foreach (var nestedRecord in nestedRecords)
    {
        nestedDtRow[nestedRecord.colName] = nestedRecord.Data;
    }
      tbl.Rows.Add(nestedDtRow);
 }
   tableViewOrders.DataSource = tbl;

}

调试时 "tbl" 只有一个 table 但输出显示多个 table。

        `

您正在为这个循环中的每一行一遍又一遍地添加列:

foreach (var nestedRow in objGridList)
{
} 

你只需要在循环外做一次。有关如何在循环外添加列的信息,请参阅 答案。