none
Atualizar parte da view RRS feed

  • Pergunta

  • Olá,

    pessoal estou querendo fazer um cadastro de 1:N. Minha ideia é assim, tenho uma compra e a pessoa vai adicionando os itens.
    Porém a lista de itens, deveria atualizar sem dar refesh na tela, mas somente na div que tem estes dados.

    Pelo que eu estou vendo, a minha opção é chamar um jQuery, este mandar os dados para o server, e pegar os dados de volta via json. 
    Mas esta é a única solução?

    Outra coisa, a melhor forma de guardar os dados seria diretamente no banco de dados ou melhor via session ou cokies.

    Abs


    Marlon Tiedt
    www.sesmt.com.br

    sexta-feira, 31 de agosto de 2012 21:58

Respostas

  • Eu tive um problema desse gênero.

    E usei esse cara "knockoutjs", nesse link tem "exemplos" que vc pode alterar dinamicamente, resolvi meu problema com ele, escolhi a melhor soluçãoi da forma que se encaixava com minha nessessidade, depois alterei alguns pontos que precisava e pimba, dois dias de trabalho e ficou perfeito da forma q queria.

    http://knockoutjs.com/examples/

    segunda-feira, 3 de setembro de 2012 12:46
  • Knockoutjs parece ser uma mão na roda, por outro lado é um pouco intrusivo no html, deixa o html não natural, mas se a equipe não liga pra isso pode rolar. Eu particularmente prefiro a liberdade de fazer todo o jquery por conta própria e não ter "extensões" de terceiros no html. Mas bom para fábrica de software onde tempo de construção é mais importante do que tudo.

    Sobre carregar dados do servidor numa div sem dar refresh, dá uma pesquisada sobre partial view com ajax.

    O retorno de algum ajax vai depender do que você quer retornar, mas pode por exemplo ser um html, json ou redirect (no caso da partialview por exemplo é html).

    As ações do usuário de inserir itens deve ser feita via jquery, inserindo linha (<tr>) na table do html. Esta <tr> pode estar numa partial view caso você tenha que buscar informações adicionais no banco.

    Sobre guardar informações (carrinho de compras em andamento), regularmente em Session, mas poderia guardar no banco de dados pois qualquer acidente enquanto estiver logado daria chance pro cara voltar do estado que confirmou, podendo também cancelar. Claro que o valor de compra ainda não poderia estar guardado no banco pois pode mudar depois que logar novamente. Só estou te passando possibilidades soltas tecnicamente, mas questões de negócio, políticas e Legais você vê com o cliente. Tente se basear em grandes sites de compras.

    • Editado rs.developer sábado, 8 de setembro de 2012 15:58
    • Sugerido como Resposta Jomar Souza sexta-feira, 21 de novembro de 2014 11:18
    • Marcado como Resposta welington jrModerator terça-feira, 6 de março de 2018 15:45
    sábado, 8 de setembro de 2012 14:43

Todas as Respostas

  • Boa noite Marlon,

    A melhor solução depende do teu cenário. Se na tua view de venda, após o get, já existir a lista de itens disponíveis ao usuário para escolha, você pode efetuar a associação da nova compra com os itens escolhidos tudo client-side (html e javascript), sem a necessidade de efetuar gets ou posts, caso contrário não tem outra forma.

    Tenho situações como esta em alguns projetos do tipo carrinho de compra e tenho os dois cenários mencionados por você: tanto o de guardar os itens da compra no banco a cada momento que o cliente registra os produtos no carrinho, quanto o de ir armazenando a compra e os itens em memória (session) e no final enviar para o banco via post. O caso do refresh na tela você contorna com Ajax mesmo (pode ser via jquery e o retorno json), pois o usuário tem que escolher o(s) produto(s), relacioná-lo à sua compra e depois confirmar; só não aconselho guardar em cookies e sim session. O mvc tem também o helper Ajax para get e para post, você pode utilizá-los como mais uma alternativa ao refresh, além de ser mais simples.

    Caso precise de algum exemplo de procedimentos com jquery e json me fala.

    domingo, 2 de setembro de 2012 01:02
  • Se tiver algum exemplo para passar ficaria grato.

    Obrigado

    Marlon Tiedt
    www.sesmt.com.br

    segunda-feira, 3 de setembro de 2012 11:17
  • Eu tive um problema desse gênero.

    E usei esse cara "knockoutjs", nesse link tem "exemplos" que vc pode alterar dinamicamente, resolvi meu problema com ele, escolhi a melhor soluçãoi da forma que se encaixava com minha nessessidade, depois alterei alguns pontos que precisava e pimba, dois dias de trabalho e ficou perfeito da forma q queria.

    http://knockoutjs.com/examples/

    segunda-feira, 3 de setembro de 2012 12:46
  • Knockoutjs parece ser uma mão na roda, por outro lado é um pouco intrusivo no html, deixa o html não natural, mas se a equipe não liga pra isso pode rolar. Eu particularmente prefiro a liberdade de fazer todo o jquery por conta própria e não ter "extensões" de terceiros no html. Mas bom para fábrica de software onde tempo de construção é mais importante do que tudo.

    Sobre carregar dados do servidor numa div sem dar refresh, dá uma pesquisada sobre partial view com ajax.

    O retorno de algum ajax vai depender do que você quer retornar, mas pode por exemplo ser um html, json ou redirect (no caso da partialview por exemplo é html).

    As ações do usuário de inserir itens deve ser feita via jquery, inserindo linha (<tr>) na table do html. Esta <tr> pode estar numa partial view caso você tenha que buscar informações adicionais no banco.

    Sobre guardar informações (carrinho de compras em andamento), regularmente em Session, mas poderia guardar no banco de dados pois qualquer acidente enquanto estiver logado daria chance pro cara voltar do estado que confirmou, podendo também cancelar. Claro que o valor de compra ainda não poderia estar guardado no banco pois pode mudar depois que logar novamente. Só estou te passando possibilidades soltas tecnicamente, mas questões de negócio, políticas e Legais você vê com o cliente. Tente se basear em grandes sites de compras.

    • Editado rs.developer sábado, 8 de setembro de 2012 15:58
    • Sugerido como Resposta Jomar Souza sexta-feira, 21 de novembro de 2014 11:18
    • Marcado como Resposta welington jrModerator terça-feira, 6 de março de 2018 15:45
    sábado, 8 de setembro de 2012 14:43
  • Obrigado pelas respostas.

    Vou dar uma pesquisada.

    Sobre a ideia de salvar no banco de dados, eu acho mais interessante. Não somente em sistema web mas também em sistemas desktop.
    A segurança disto aumenta bastante e você tem aceso a qualquer momento e em qualquer PC.

    Abs



    Marlon Tiedt
    www.sesmt.com.br

    sábado, 8 de setembro de 2012 15:20