none
Buenas dropdownlist anidados PERO en Jquery RRS feed

  • Pregunta

  • Buenas,la situacion es,click a un botom para buscar una guia,me muestra la informacion de esa guia,funciona bien pero un poco lento la busqueda.

    VB.NET  and sql Server 2005 (WEB)

    Esta pantalla de busqueda de la guia tiene 3 dropdownlist (Pais - Departamento o Provincia - Municpio),la estoy tratando de hacerlo con Jquery, pero el detalle es que cuando voy a llenar el departamento o provincia dependiendo del cod del pais que la guia tenga grabada,no llena el dropdownlist del departamento o provincia (error)

    Codigo Jquery

    function cargadepartamentos(){
     $('#<%=dlldeparta.ClientID%>').append(
          $('<option></option>').val(0).html('Departamento')
        );

     $.ajax({
       type: "POST", 
       url: "wsjson.asmx/BindDatatoDropdown", 
       data: "{'codenco': '" + $('#ddlpais').val() + "'}",
       dataType: "json", 
       contentType: "application/json; charset=utf-8", 
       success: onsuccess,
       error: onerror 
     });   
    }

    function onsuccess(data){
      $('#<%=dlldeparta.ClientID%>').empty();
        var d = data.d;
        var dropdown = $('#<%=dlldeparta.ClientID%>');
        for (var i = 0; i < d.length; i++) {
          dropdown.append(
            $('<option></option>').val(d[i].CountryId.toString()).html(d[i].CountryName.toString())
          );
        }
    }

    function onerror(){
      alert("Error fallo el Departamento o Provincia");
    }

    codigo VB.net

     <WebMethod()> _
    Public Shared Function BindDatatoDropdown(ByVal codenco As String) As CountryDetails()
            Dim dt As New DataTable()
            Dim details As New List(Of CountryDetails)()

            Using con As New SqlConnection("Data Source=.\SQLEXPRESS; Database=miaexdb;User Id=miaexuser;Password=miaex123;")

                Using cmd As New SqlCommand("select g09coddepa,g09nombre from g09departamento where g09codpais ='" & Trim(codenco) & "'", con)
                    con.Open()
                    Dim da As New SqlDataAdapter(cmd)
                    da.Fill(dt)
                    For Each dtrow As DataRow In dt.Rows
                        Dim country As New CountryDetails()
                        country.CountryId = Convert.ToInt32(dtrow("g09coddepa").ToString())
                        country.CountryName = dtrow("g09nombre").ToString()
                        details.Add(country)
                    Next
                End Using
            End Using
            Return details.ToArray()
        End Function

    No llega a entrar function

    lo que busco hacer es que muestre el nro.de guia,nombre,direcion, el pais (dropDownlist), el departamento(dropDownlist) y municipio(dropDownlist)

    Alquien podria ayudarme con esto

    Gracias

    viernes, 22 de mayo de 2015 19:57

Todas las respuestas

  • hola

    en javascript desde donde invocas a cargadepartamentos() ?

    [jQuery] DropDownList anidados

    usas el change() de jquery para detectar el cambio de opcion de un combo para invocar a esta funcion que carga los items

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 22 de mayo de 2015 20:22
  • Gracias Leandro por contestar,pero el caso es que el usuario coloca el nro.de guia luego le da click al boton buscar y los dropdownlist (pais-departamento-municipio) deberian aparecer con nombre del  pais, del depatamento y del municipio que tiene asignado esa guia.

    Esto lo hago dentro de VB.net y funciona perfecto pero un poco lento,con Jquery es violenta la repuesta pero solo me falta ese detalle

    Anyway gracias por todo

    viernes, 22 de mayo de 2015 22:17
  • hola

    pero actualmente el usuario sigue realizando el click en el boton buscar y realiza un post a un evento en el servidor ?

    no entendi como juega ese boton buscar con los combos anidados aplicando jquery

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 23 de mayo de 2015 3:11
  • Gracias leandro por contestar,pero esto es lo que hago dentro de VB.net

                ddlpais.SelectedValue = buscarorden.Rows(0).Item("z01paisrecibe")
                'ahora a buscar el departa

                dlldeparta.Items.Clear()
                dlldeparta.Items.Add("Departamento")
                dlldeparta.DataSource = customer.subruta(ddlpais.SelectedValue)
                dlldeparta.DataBind()
                dlldeparta.SelectedValue = Trim(buscarorden.Rows(0).Item("z01departamento"))

               'ahora a buscar los municpios

                ddlmunicipio.Items.Clear()
                ddlmunicipio.Items.Add("Municipio")
                ddlmunicipio.DataSource = customer.subruta(dlldeparta.SelectedValue)
                ddlmunicipio.DataBind()
                ddlmunicipio.SelectedValue = Trim(buscarorden.Rows(0).Item("z01municipio"))

    El usuario coloca el nro.de guia luego le da click a un boton buscar y en cada dropdownlist muestra el pais , departamento y municipio que corresponden a esa guia,

    Esto mismo lo quiero hacer en Jquery. NO es que el usuario le da click al pais y luego muestra los departamento de ese pais y luego click en departamento y muestra los municipio de ese departamento,ESO NO es lo que busco.

    Lo que se busca es, que lo que esta en VB.net y hacerlo con Jquery, tengo 3 dias googleando y nada, lo que encuentro es el click a los DropDownlist y eso no es el objectivo

    Gracias por contestar

    sábado, 23 de mayo de 2015 16:35
  • Hola, 

    Intente recrear tu problema y esto fue lo que encontre:

    primero, asegurate de que en la pagina: wsjson.asmx tengas definido el tag ScriptService:

    <System.Web.Script.Services.ScriptService> _
    Public Class wsjson
        Inherits System.Web.Services.WebService

    y en la parte de javascript debe quedar asi:

            function onsuccess(data) {
                $('#<%=dlldeparta.ClientID%>').empty();
                var d = data.d;
                alert(d.length)
                var dropdown = $('#<%=dlldeparta.ClientID%>');
                for (var i = 0; i < d.length; i++) {
                    dropdown.append(
                      $('<option></option>').val(d[i].CountryId).html(d[i].CountryName)
                    );
                }
            }

    Espero que te sirva.

    Saludos.

    lunes, 25 de mayo de 2015 13:53
  • Gracias Horroroso,pero eso lo hice pero para lo que estoy buscando no trabaja,

    Este es el caso: Alquien ingreso una Nro Guia X50,  30 dias atras y esta guia cuando se ingresa pide Nombre,Direccion,de que pais,de que departamento y de que municipio (pais-departamento-municipio) los 3 son dropdownlist,cuando se consulte la guia se debe mostrar nombre,direccion y en el dropdownlistpais el pais,en el dropdownlistdepartamento el departamento y en el dropdownlistmunicipio el municpio y cuando se habra el dropdownlistpais deben aparecer todos los pais, en dropdownlistdepartamento los departamento de ese pais y en el dropdownlistmunicipio los municipios de ese departamento.

    Todo eso lo hago con VB.net pero lo quiero hacer con Jquery para mayor rapidez.

    Miralo aqui en VB.net , con solo darle ckick al boton consulta de guias

               'se trae de la BD el codigo del pais          

                ddlpais.SelectedValue = buscarorden.Rows(0).Item("z01paisrecibe")

                  'se trae de la BD el codigo del departamento          

                dlldeparta.Items.Clear()
                dlldeparta.Items.Add("Departamento")
                dlldeparta.DataSource = customer.subruta(ddlpais.SelectedValue)
                dlldeparta.DataBind()
                dlldeparta.SelectedValue = Trim(buscarorden.Rows(0).Item("z01departamento"))

                 'se trae de la BD el codigo del municipio          

                ddlmunicipio.Items.Clear()
                ddlmunicipio.Items.Add("Municipio")
                ddlmunicipio.DataSource = customer.subruta(dlldeparta.SelectedValue)
                ddlmunicipio.DataBind()
                ddlmunicipio.SelectedValue = Trim(buscarorden.Rows(0).Item("z01municipio"))

    Como trabajar el SelectedValue dentro de Jquery?

    Gracias de nuevo

    lunes, 25 de mayo de 2015 15:56