Vinculando um RadGrid para uma árvore como a estrutura de dados
-
18-09-2019 - |
Pergunta
Eu tenho uma estrutura que a aparência seguinte
Class TreeNode {
public TreeNode Parent { get; }
public IEnumerable<TreeNode> Children { get; }
public . . . .
}
Eu quero vincular a um asp.net telerik RadGrid com tabelas de detalhes para cada nível das crianças. Eu sei que suportes RadGrid declarativa ligação a uma hierarquia auto referência usando um controle de fonte de dados, mas que assume que você tem um conjunto de dados plana (por exemplo, a partir de um banco de dados) e pode olhar para um campo de chave pai de algum tipo. A minha pergunta tem alguém que esteja um RadGrid para uma estrutura de dados como este antes e há uma maneira de fazê-lo de forma declarativa ou principalmente declarativa?
Solução
Eu não posso responder à sua pergunta diretamente desde que eu não tenho nenhuma experiência com a grade telerik, mas eu posso oferecer um trabalho em torno.
Adicionar um método para sua classe que achata o seu conteúdo em uma tabela de auto-referência como a estrutura como a que você mencionou. Desta forma, você pode ainda trabalhar com a classe e é a estrutura mais avançada como você quer, mas ainda pode saída o conteúdo em uma forma de consumo que coincide com as expectativas dos componentes de interface do usuário.
Este também é um bom candidato para um método de extensão também.
Outras dicas
Outra maneira possível que eu posso pensar é construir a hierarquia de forma dinâmica, filtrando a data para as tabelas filho com base em seu pai dentro do manipulador de grade DetailTableDataBind. Esta demonstração é uma boa referência:
http://demos.telerik.com /aspnet-ajax/grid/examples/programming/detailtabledatabind/defaultcs.aspx
mas devo concordar que a sugestão de Stephen pode ser mais útil.
Dick