通过GroupField键以递归方式搜索Infragistics WebDataGridView的GroupField

时间:2013-07-03 22:22:46

标签: asp.net infragistics

我正在开发一个项目,我需要将BoundDataField添加到GroupField。我知道数据字段名称是什么,我知道我想要添加BoundDataField的GroupField的键,但我不知道该组是否存在。

我需要做的是,按键搜索WebDataGridView以获取GroupField,如果存在则将BoundDataField添加到GroupField,如果GroupField不存在,我需要将GroupField添加到Grid,然后将BoundDataField添加到新创建的GroupField。

有没有办法通过GroupField键递归搜索GroupField的网格?

1 个答案:

答案 0 :(得分:3)

您可以使用类似于以下的方法执行此操作,以在网格中搜索GroupField:

public GroupField GetField(string key, GridFieldCollection columns)
{
    foreach (GridField column in columns)
    {
        if (column.GetType().Name == "GroupField")
        {
            GroupField gf = (GroupField)column;
            if (gf.Key == key)
                return gf;
            else
                return GetField(gf.Key, gf.Columns);
        }
    }
    return null;
}

然后,将新列添加到找到的GroupField,如果找不到,则创建一个新列

    GroupField gf = GetField("GroupField_0", WebDataGrid1.Columns);
    if (gf != null)
    {
        BoundDataField col = new BoundDataField();
        //set up new column here...
        gf.Columns.Add(col);
    }
    else 
    {
        GroupField groupField = new GroupField();
        //set up new group field here...
        WebDataGrid1.Columns.Add(groupField);
    }