none
Consulta via Json RRS feed

  • Pergunta

  • Bom dia tenho o seguinte cenário:

    faço uma consulta via json:

    ===========

     function ConsultaProcesso() {
                $(document).ready(function () {
                    $('#ddlCliente').change(function () {
                        var selectedValue = $(this).val();
                        var area = $('#ddlArea').val();

                        if (area != '') {

                            if (selectedValue != null && selectedValue != '') {
                                $.ajax({
                                    url: "DespesaProcesso.aspx/ConsultaProcessos",
                                    data: "{ 'p1': '" + selectedValue + "' , 'p2': '" + area + "' }",
                                    dataType: "json",
                                    type: "POST",
                                    contentType: "application/json; charset=utf-8",
                                    success: function (data) {
                                        response(data.d);

                                    },
                                    error: function () {
                                        showErro('Ocorreu um erro ao consultar processo');

                                    },
                                    failure: function () {
                                        showErro('Ocorreu um erro ao consultar processo');
                                    }
                                });
                            }
                        }
                        else {

                            ShowErro('Atenção: Selecione uma área!');

                        }
                    });
                });
            }

    =====

    Abaixo o método estático:

     [WebMethod]
            public static List<string> ConsultaProcessos(string p1, string p2)
            {

                var obj = new Mdespesa();
                obj.ClienteId = Convert.ToInt64(p1);
                obj.AreaProcessualId = Convert.ToInt16(p2);
                var ds = new DataSet();
                var objnegocio = new Ndespesa();
                ds = objnegocio.ListaProcesso(obj);

                List<string> dados = new List<string>();
               //aqui gostaria de preencher meu dropdowlist
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    dados.Add(row["nproc"].ToString());

                }
               
            
                return dados;

            }

    ====

    Minha duvida é a seguinte como eu preencho os dados retornados para o dropdowlist :

    Muito obrigado.


    • Editado _Manigold_ terça-feira, 13 de maio de 2014 12:12
    terça-feira, 13 de maio de 2014 12:09

Todas as Respostas

  • Eu faria um retorno json também e pegaria no sucesso do ajax.

    return Json(new { dados }, JsonRequestBehavior.AllowGet);

    No sucesso seria:

    (data.dados)//dados é o retorno do seu json no codebehind. É nele q vc vai trabalhar

    E o método no jquery teria o mesmo nome do seu método no code behind(Isso já está ok)

    terça-feira, 13 de maio de 2014 13:10
  • Olá amigo, fiz da seguinte forma:

    Está funcionando corretamente , mas não sei se é a melhor pratica.

    Muito obrigado.

    function ConsultaProcesso() {
                $(document).ready(function () {
                    $('#ddlCliente').change(function () {
                        var selectedValue = $(this).val();
                        var area = $('#ddlArea').val();

                        if (area != '') {

                            if (selectedValue != null && selectedValue != '') {
                                $.ajax({
                                    url: "DespesaProcesso.aspx/ConsultaProcessos",
                                    data: "{ 'p1': '" + selectedValue + "' , 'p2': '" + area + "' }",
                                    dataType: "json",
                                    type: "POST",
                                    contentType: "application/json; charset=utf-8",
                                    success: function (data) {
                                        var select = $("#ddlProcesso");
                                        select.children().remove();
                                        if (data.d) {
                                            $(data.d).each(function (index, item) {

                                                //adiciono os processos.
                                                select.append($("<option>").val(item).text(item));

                                            });
                                        }

                                    },
                                    error: function () {
                                        showErro('Ocorreu um erro ao consultar processo');

                                    },
                                    failure: function () {
                                        showErro('Ocorreu um erro ao consultar processo');
                                    }
                                });
                            }
                        }
                        else {

                            ShowErro('Atenção: Selecione uma área!');

                        }
                    });
                });
            };


    • Editado _Manigold_ terça-feira, 13 de maio de 2014 13:15
    terça-feira, 13 de maio de 2014 13:14
  • Olá amigo estou com o seguinte problema agora, como eu preencho o value ?

    abaixo segue meu codigo.

    === Json =====

                                                

    function ConsultaProcesso() {
                $(document).ready(function () {
                    $('#ddlCliente').change(function () {
                        var selectedValue = $(this).val();
                        var area = $('#ddlArea').val();

                        if (area != '') {

                            if (selectedValue != null && selectedValue != '') {
                                $.ajax({
                                    url: "DespesaProcesso.aspx/ConsultaProcessos",
                                    data: "{ 'p1': '" + selectedValue + "' , 'p2': '" + area + "' }",
                                    dataType: "json",
                                    type: "POST",
                                    contentType: "application/json; charset=utf-8",
                                    success: function (data) {
                                        var select = $("#ddlProcesso");
                                        select.children().remove();
                                        if (data.d) {
                                            $(data.d).each(function (index, item) {



                                                //adiciono os processos.
                                                select.append($("<option value>").val(item.value).text(item));

                                            });
                                        }

                                    },
                                    error: function () {
                                        showErro('Ocorreu um erro ao consultar processo');

                                    },
                                    failure: function () {
                                        showErro('Ocorreu um erro ao consultar processo');
                                    }
                                });
                            }
                        }
                        else {

                            ShowErro('Atenção: Selecione uma área!');

                        }
                    });
                });
            };

    === Code Behind ===

         [WebMethod]
            public static List<string> ConsultaProcessos(string p1, string p2)
            {

                var obj = new Mdespesa();
                obj.ClienteId = Convert.ToInt64(p1);
                obj.AreaProcessualId = Convert.ToInt16(p2);
                var ds = new DataSet();
                var objnegocio = new Ndespesa();
                ds = objnegocio.ListaProcesso(obj);

                List<string> dados = new List<string>();
                
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    dados.Add(row["nproc"].ToString());
                    
                }
               
            
                return dados;

            }

    Obrigado,

    terça-feira, 13 de maio de 2014 14:39