Obter dados

16/06/2020

6

Olá,

Tenho uma aplicação ASP.NET MVC onde em uma parte controlo a alteração do estoque de produtos.

Basicamente, na Index dos Produtos eu tenho um botão que abre um "modal" que tem um Select com a lista (DropDown) de produtos cadastrados no banco de dados, e dois inputs que recebem a quantidade(int) e o valor(decimal) que será alterado do produto, a ideia é que o usuário possa alterar quantidade e atualizar o valor com mais facilidade, sem precisar entrar no cadastro do produto.

Tudo funciona 100%, seleciono o produto na tag Select, informo as alterações e ele atualiza no banco de dados.

Mas o que eu queria fazer nesta tela é:
Quando o usuário selecionar o produto na tag Select ele preencher outras tags (que vou criar na view e serão somente leitura) com os dados atuais do produto no banco de dados, por exemplo: quantidade, valor, descrição, etc...

Meu DropDown
ViewData["ProductId"] = new SelectList(_context.Product, "Id", "ProductName");


Minha View onde atualizo os dados:
<div class="col-md-12">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="ProductId" class="control-label"></label>
                <select asp-for="ProductId" class="form-control" asp-items="ViewBag.ProductId"></select>     
                <span asp-validation-for="ProductId" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Quantity" class="control-label"></label>
                <input asp-for="Quantity" class="form-control" placeholder="Quandidade a Adicionar ou Remover" />
                <span asp-validation-for="Quantity" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Price" class="control-label"></label>
                <input asp-for="Price" class="form-control" placeholder="Alterar Valor do Produdo" />
                <span asp-validation-for="Price" class="text-danger"></span>
            </div>
        </div>


Acredito que eu tenha como fazer isso por Javascript, no evento change por exemplo, mas não tenho ideia de como fazer isso.

Alguém poderia me dar uma luz?
Responder

Posts

17/06/2020

Jothaz

Use a notação do razor iterando na ViewData.

Veja esta link:
https://www.tutorialsteacher.com/mvc/viewdata-in-asp.net-mvc

Responder
Use a notação do razor iterando na ViewData.

Veja esta link:
https://www.tutorialsteacher.com/mvc/viewdata-in-asp.net-mvc



Li o artigo mas não resolveu meu problema, para explicar melhor:

O que eu quero é o seguinte:

Tenho meu Select funcionando normalmente na View, ele é populado pelos dados que vem do banco, tudo certo.
o "value" das options desse select são o Id do item na tabela do BD, obviamente e o nome delas é o nome que está no banco, perfeito.

o que eu preciso é que, conforme eu selecione a option, algumas tags sejam preenchidas com os dados desse item da tabela, tipo nome, preo, descrição, etc...

Resumindo, tipo assim:

            <div>               
                <select asp-for="ProductId" asp-items="ViewBag.ProductId">
                        //As options aqui são populadas pelos dados retornados do BD.
               </select>      
            </div>
            <div>               
                <input  />  //Aqui aparece o preço do produto selecionado, por exemplo.
                <input  />  //Aqui aparece a quantidade do produto selecionado, por exemplo.
                <input  />  //Aqui aparece a descrição do produto selecionado, por exemplo.
            </div>




Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar