none
ViewBag RRS feed

  • Pergunta

  •   Boa tarde  colegas,

     Preciso de uma ajuda por ter conseguido resolver.

     Problema:

     Tenho um grid  onde usei o Bootstrap.

      Preciso por uma linha de total no final mas, não estou conseguindo.

      Quais são as rotinas que desenvolvi.

    Controller:

    ======================================================

     private IRepositorio<Category> _repositorioCategory;

            public CategoryController()
            {
                _repositorioCategory = new ClienteRepositorio(new CategoryContexto());

            }

            public ActionResult Catalogo()
            {
                return View(_repositorioCategory.GetTodos());

               
            }

    ============================================================================

     View(Partial).

    @model IEnumerable<CatalogoClientes.Dominio.Entidades.Category>

    @{
        ViewBag.Title = "Catalogo de Clinetes";

    }

    @foreach (var p in Model)
    {
        @Html.Partial("_CatalogoResumo", p)

    }
    ========================================================

    Desenha o grid

    =========================================================

    @model CatalogoClientes.Dominio.Entidades.Category

       <div class="row">
            <div class="col-sm-4" style="background-color:lavender; border:1px dashed  gray;">
                <strong> @Model.N_Category</strong>
            </div>

            <div class="col-sm-3" style="background-color:lavenderblush;border:1px dashed  gray;">
                <strong> @Model.N_Modelo</strong>
            </div>
            <div id="Valor" class="col-sm-2" style="background-color:lavender ;border:1px dashed  gray; ">
                @Model.Price_Model
            </div>
        </div>

    ======================================

    Resultado

      Agradeço a ajuda.

      Uma hora enterro o vb6 ....

    Obrigado....


    quarta-feira, 16 de março de 2016 16:55

Respostas

  • Antônio, duas coisas:

    1 - para exibir o valor de uma variável criada anteriormente no código é simplesmente colocar um @ na frente do nome:

    <div>      Total            @total</div>
    2 - recomendo, caso for fazer o cálculo diretamente na View (não recomendaria), fazer pelo menos no mesmo foreach que tu crias as linhas;  se criares dois laços - um para linhas, outro para calcular o total - tu terás o dobro de processamento.


    Att., Rafael Simor

    quarta-feira, 16 de março de 2016 22:03

Todas as Respostas

  • Olá Antonio! Boa tarde...

    Como está calculando atualmente? Poderia criar uma variável no escopo da página para somar os valores...

    @{
    double valorTotal = 0;
     foreach (var p in Model)
       {
        @Html.Partial("_CatalogoResumo", p)
        valorTotal += p.Price;
       }
    }

    Abraços

    quarta-feira, 16 de março de 2016 17:20
  •   Rogério  boa tarde,

     Eu já fiz esta alteração   ou seja, 

     criei dois

     esse carrega as informações linha a linha.

     @foreach (var p in Model)
    {
        @Html.Partial("_CatalogoResumo", p)

    }

       esse será usando só para compor o toal.

    @foreach (var p in Model)
    {

     valorTotal += p.Price;

    }

     A questão é não consegui passar a variável para view.

    se tiver uma ideia  ajudará muito.

    Sou grato pelo  seu apoio.

    quarta-feira, 16 de março de 2016 20:48
  • Boa tarde.

    Utilizando de ViewBag, tente o seguinte:

    public ActionResult Catalogo()
            {
                var registros = _repositorioCategory.GetTodos();
                var total = registros.Sum(x => x.Price_Model);
    
                ViewBag.Total = total;
    
                return View(registros);
            }

    Isso caso o Price_Model ou Price, seja lá a propriedade, for já um número; senão uma conversão de string para o tipo correto é necessária.

    Na tua View tu simplesmente chamaria @ViewBag.Total onde tu desejas que ela seja exibida.


    Att., Rafael Simor

    quarta-feira, 16 de março de 2016 21:55
  • Estou tentando passar o valor da  variável  total para

    a tag DIV porém não estou conseguindo da forma que estou fazendo

    ====================================

    @foreach(var p in Model)

     // @Html.Partial("Totalizacao", p)  
        
        total = total + p.Price_Model;
      
    }

    <html>
    <head>

    </head>
    <body>
          <div>      Total            total     </div>
                      
    </body>
    </html>
     Não encontrei a  forma da variável  "total"  ser  visualizado pelo conteúdo

        Total   9999,00

    Obrigado.

    quarta-feira, 16 de março de 2016 21:58
  • Antônio, duas coisas:

    1 - para exibir o valor de uma variável criada anteriormente no código é simplesmente colocar um @ na frente do nome:

    <div>      Total            @total</div>
    2 - recomendo, caso for fazer o cálculo diretamente na View (não recomendaria), fazer pelo menos no mesmo foreach que tu crias as linhas;  se criares dois laços - um para linhas, outro para calcular o total - tu terás o dobro de processamento.


    Att., Rafael Simor

    quarta-feira, 16 de março de 2016 22:03
  • Rafael  show,

    Obrigado pela ajuda e dica.

     Abraços,

    quarta-feira, 16 de março de 2016 23:51