Usuario
Buenas dropdownlist anidados PERO en Jquery

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 FunctionNo 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
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 -
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
-
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 -
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
-
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.
-
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