none
Criar método recursivo para ler registros do tipo treeview RRS feed

  • Pergunta

  • Olá pessoal,

        Se for possível, gostaria de uma ajuda de vocês, tenho uma tabela em minha base de dados que reflete os campos e registros abaixo:

    { Id = 1, Title="root", ParentItemId=0 },
    { Id = 2, ParentItemId=1, Title="title-2", Url = "url-2"},
    { Id = 3, ParentItemId=1, Title="title-3", Url = "url-3"},
    { Id = 4, ParentItemId=1, Title="title-4", Url = "url-4"},
    { Id = 5, ParentItemId=3, Title="title-5", Url = "url-5"},
    { Id = 6, ParentItemId=3, Title="title-6", Url = "url-6"},
    { Id = 7, ParentItemId=6, Title="title-7", Url = "url-7"},
    { Id = 8, ParentItemId=6, Title="title-8", Url = "url-8"},
    { Id = 9, ParentItemId=8, Title="title-9", Url = "url-9"},
    { Id = 10,ParentItemId=8, Title="title-10", Url = "url-10"},
    { Id = 11, ParentItemId=8, Title="title-11", Url = "url-11"}

    Preciso de um método que faça leitura recursiva para o campo ParentItemId e  retorne um JSON com os pais e filhos dos registros. Como eu faria isso ?  eu teria que também fazer alguma mudança no meu model ?

    Abraços

        

    segunda-feira, 13 de maio de 2013 22:02

Todas as Respostas

  • Você está utilizando algum ORM Entity Framework, Nhibernate?

    Para retornar os daos em formato JSON, basta ter uma action que rotorna JSON:

    public ActionResult Json()
            {
                List<json> lista = new List<json>()
                {
                    new json(){id = 1, nome="teste 1"},
                    new json(){id = 2, nome="teste 2"},
                    new json(){id = 3, nome="teste 3"}
                };
    
                return Json(lista);
            }

    Na view você pode chamar assim:

    jQuery.ajax({
            type: "POST",
            url: "/Home/Json",
            dataType: 'json',
            success: function (response) {
                alert(response[0].nome);
                alert(response[1].nome);
                alert(response[2].nome);
            },
            erro: function (xhr, ajaxOptions, thrownError) {
                alert(thrownError)
            }
        });


    Att,
    Leandro

    Se foi útil, marque como útil ou como resposta.

    segunda-feira, 13 de maio de 2013 23:30
  • Você está utilizando algum ORM Entity Framework, Nhibernate?

    Para retornar os daos em formato JSON, basta ter uma action que rotorna JSON:

    public ActionResult Json()
            {
                List<json> lista = new List<json>()
                {
                    new json(){id = 1, nome="teste 1"},
                    new json(){id = 2, nome="teste 2"},
                    new json(){id = 3, nome="teste 3"}
                };
    
                return Json(lista);
            }

    Na view você pode chamar assim:

    jQuery.ajax({
            type: "POST",
            url: "/Home/Json",
            dataType: 'json',
            success: function (response) {
                alert(response[0].nome);
                alert(response[1].nome);
                alert(response[2].nome);
            },
            erro: function (xhr, ajaxOptions, thrownError) {
                alert(thrownError)
            }
        });


    Att,
    Leandro

    Se foi útil, marque como útil ou como resposta.

    Olá Leandro, obrigado pela resposta.

    Eu trabalho com o ASP.NET MVC 4, RAZOR, LINQ, jQuery e MS SQL Server.

    O meu problema é que preciso criar uma TreeView de um menu entende. Preciso criar um método recursivo que consiga montar o JSON com os "pais" e "filhos" dos registros da arvore se baseando no campo ParentItemId conforme o exemplo que citei acima.

    Voce poderia me ajudar nessa tarefa?

    Abraços


    terça-feira, 14 de maio de 2013 13:36