RadGridView获取子模板数据?

时间:2016-01-15 01:43:16

标签: c# telerik-grid radgrid radgridview

我在迭代网格时试图获取子模板的数据。

我从这开始:

        foreach (GridViewRowInfo row in radGridView1.Rows)
        {
            err = IterateChildRows(row);
        }

并将该行传递给:

    private bool IterateChildRows(GridViewRowInfo rowInfo)
    {
        bool err = false;
        if (rowInfo.Cells[5].Value != null && rowInfo.Cells[5].Value.ToString() != "01/01/1900")
        {
            if (rowInfo.Cells[0].ViewTemplate.Templates[0].Caption == "Current")
            {
                if (rowInfo.ViewTemplate.Templates[0].RowCount == 0)
                {
                    MessageBox.Show("Not all products have CURRENT quantity breaks", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    err = true;
                }
            }
        }
        return err;
     }

我的问题是,我似乎无法找到我传入的行的子模板数据。我尝试的所有内容似乎都包含所有主模板项中的所有子行,而不仅仅是行I传入。

因此,如果我的主网格中有2个项目,而我的子模板中有3个项目,那么我的计数为6而不是3。

我不知道我哪里出错......

任何?

干杯 迪安

1 个答案:

答案 0 :(得分:1)

尝试以下操作,可以通过HierarchyRowInfo

访问子框
private bool IterateChildRows(GridViewRowInfo rowInfo)
{
    bool err = false;
    GridViewHierarchyRowInfo hierarchyRow = rowInfo as GridViewHierarchyRowInfo;

    //To get current row childRows count
    int noOfChildRows = hierarchyRow.ChildRows.Count;

    //looping through the child rows
    foreach (GridViewRowInfo row in hierarchyRow.ChildRows)
    {   
        //check if its current child row
        if(row.IsCurrent)
        {
           // Do your logic
        }
    }

    return err;
 }