none
Script RRS feed

  • Pergunta

  • Boa noite,

    eu preciso implementar um script que ao mudar um DropDownList um segundo DropDownList retorne com a index "0", no caso "#Med_Produto", alguém tem uma sugestão?

    Eu preciso que o usuário mude o Drop "Med_Produto". No caso abaixo esta retornando com um registro do banco.

    CONTROLLER:

     [HttpPost]
            public ActionResult RetornaProduto(string codigo)        {
                
                var _Codigo = Convert.ToInt32(codigo);
                var query = from c in db.Prod_Med_Produto 
                            where c.cod_Principio_Ativo == _Codigo
                            orderby c.id descending
                            select new { c.id, c.nome_comercial };
    
                return Json(query);
            }

    VIEW:

         
    @Html.DropDownList("cod_Med_Principio_Ativo", null, String.Empty, new { Name = "cod_Med_Principio_Ativo", id = "Principio", @class = "form-control" })
    
    @Html.DropDownList("cod_Med_Produto", null, String.Empty, new { name = "cod_Med_Produto", id = "Med_Produto", @class = "form-control" })
                       

     $("#Principio").change(function () {    
            var dados = $(this).val().toString();
            var options = "";
            if (dados != 0) {
                $.ajax({
                    url: '@Url.Action("RetornaProduto", "Principal")',
                    type: 'POST',
                    dataType: 'json',
                    data: { codigo: dados },
                    success: function (result) {
                        options += '<option value="" selected></option>';
                        $.each(result, function (key, val) {
                            options += '<option value="' + val["id"] + '" selected>' + val["nome_comercial"] + '</option>';
                        });
                        $("#Med_Produto").html(options);
                    }
                });        
            } else {
                console.log(options)
                $("#Med_Produto").html(options);
            }          
        }).change();

    terça-feira, 28 de julho de 2015 23:47

Respostas

  • Olá Wilson,

    Acredito que com os códigos abaixo, tudo deva funcionar....

    CONTROLLER

     [HttpPost]
            public ActionResult RetornaProduto(string codigo)        {
                
                var _Codigo = Convert.ToInt32(codigo);
                var query = from c in db.Prod_Med_Produto 
                            where c.cod_Principio_Ativo == _Codigo
                            orderby c.id descending
                            select new { c.id, c.nome_comercial };
    
                return Json(query, JsonRequestBehavior.AllowGet);;
            }

    VIEW

    $("#Principio").change(function () {    
            var dados = $(this).val().toString();
            var options = "";
            if (dados != 0) {
                $.ajax({
                    url: '@Url.Action("RetornaProduto", "Principal")',
                    type: 'POST',
                    dataType: 'json',
                    data: { codigo: dados },
                    success: function (result) {
                      $("#Med_Produto").html('');
                      $("#Med_Produto").append($('<option></option>').val("").html("Selecione"));
                      $.each(result, function (value, option) {
                        $("#Med_Produto").append($('<option></option>').val(option.id).html(option.nome_comercial));
                      });
                      $("#Med_Produto").focus();
                    }
                });        
            } else {
                console.log(options)
                $("#Med_Produto").html(options);
            }          
        });


    Att, Lucio Rogerio


    Espero ter ajudado, se ajudei, por favor Vote como Útil, e se resolvi seu problema, clique em Marcar como Resposta.



    • Editado Lucio Rogerio SPBanned quarta-feira, 29 de julho de 2015 00:41 Utilizando data invés de result
    • Marcado como Resposta Wilson Boris quarta-feira, 29 de julho de 2015 00:52
    quarta-feira, 29 de julho de 2015 00:03

Todas as Respostas