Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/10/2004, 09:12
niltonc
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 117
Antigüedad: 23 años, 3 meses
Puntos: 0
Hola, yo logre hacer eso, desde un codigo que revice, las lista son leidas desde 3 tablas una de departamentos(estados), provincias y distritos, cada uno depende de la otra tabla.

funciono, pero es lento para cargar, porque se demora en cargar las listas, y el tiempo en comparacion con que se recargue la pagina cada vez que elijo un combo es muchisimo menor.

te envio el codigo de todas maneras:
Al inicio de tu pagina:

<Script language="VBScript" RUNAT="SERVER">
FUNCTION Genera_OptionCollection(oCollection,CSqlString)
' Esta funcion genera un arreglo con los que recupera de la base de datos para el 2 y 3er combo
Comilla = Chr(34)
'SET oHandle=Server.CreateObject("ADODB.Connection")
'oHandle.Open "Oracle8"
SET oRegistro = oConn.Execute(CSqlString)
Genera_OptionCollection = "<scri" & "pt language='JavaScript'>" & vbCrlf
Genera_OptionCollection = Genera_OptionCollection &_
"var " & oCollection & " = new OptionCollection();" & vbCrlf
oRegistro.MoveFirst
DO UNTIL oRegistro.Eof
' Ejemplo: oSubFuncion.Add("0101","Descripción del Catalogo","01");
Genera_OptionCollection = Genera_OptionCollection &_
oCollection & ".Add(" & Comilla & oRegistro("Child")& Comilla & "," &_
Comilla & oRegistro("ChildCaption")& Comilla & "," &_
Comilla & oRegistro("Parent")& Comilla & ");" & vbCrlf
oRegistro.MoveNext
LOOP
oRegistro.Close
'oHandle.Close
Genera_OptionCollection = Genera_OptionCollection & "</scr" & "ipt>" & vbCrlf
END FUNCTION
</script>

despues del Title
<!--INCLUIR ESTE ARCHIVO, ES EL QUE CARGA LOS COMBOS!!! -->
<script language=Javascript src="optionex.js"></script>


Esto va despues del body:
<body bgcolor="#cccc99" background="images/mosaico_2x2.gif" onLoad="IniciaTexto(this.form); return true">
<%
' -------------------------- Aqui armo la cadena que llena el segundo combo -----------------------------
CSqlString = "SELECT Cod_Prov Child,Nom_Prov ChildCaption,left(Cod_Prov,2) Parent " &_
"FROM Provincias " &_
"ORDER BY Parent,Child,ChildCaption"
Response.Write Genera_OptionCollection("oSubCapit",CSqlString)
Response.Write Genera_OptionCollection("oSubCapit2",CSqlString)
' -------------------------- Aqui armo la cadena que llena el tercer combo -----------------------------
CSqlString = "SELECT Cod_Dist Child,Nom_Dist ChildCaption,left(cod_Dist,4) Parent " &_
"FROM Distritos " &_
"ORDER BY Parent,Child,ChildCaption"
Response.Write Genera_OptionCollection("oPartida",CSqlString)
Response.Write Genera_OptionCollection("oPartida2",CSqlString)
%>

<center>

Y esto va dento de una tabla
<td width="31%" height="30" colSpan="4" style="WIDTH: 31%">
<SELECT id=cmbdepartamento1 style="FONT-SIZE: 8pt; WIDTH: 232px; HEIGHT: 148px" name=cmbdepartamento onchange="UpdateSelect('cmbprovincia','frmgrabar', this.options[this.selectedIndex].value,oSubCapit);UpdateSelect('cmbdistrito','frmg rabar',this.options[this.selectedIndex].value,oPartida);">
<%' Aqui construimos La Lista del primer combo
CSqlString = "SELECT * FROM Departamentos ORDER BY Nom_Dep"
SET oRegistroCa = oconn.Execute(CSqlString)
oRegistroCa.MoveFirst
if trim(ubigeo1)="" or isnull(ubigeo1) then%>
<OPTION Value="" selected>[Seleccione un valor]</option>
<%end if
Do UNTIL oRegistroCa.EOF
if mid(trim(ubigeo1),1,2)= oRegistroCa("COD_DEP") then%>
<OPTION Value="<%=oRegistroCa("COD_DEP")%>" selected><%=oRegistroCa("Nom_Dep")%> </option>
<script language=javascript >
UpdateSelect('cmbprovincia','frmgrabar',frmgrabar. cmbdepartamento1.options[frmgrabar.cmbdepartamento1.selectedIndex].value,oSubCapit);UpdateSelect('cmbdistrito','frmg rabar',frmgrabar.cmbdepartamento1.options[frmgrabar.cmbdepartamento1.selectedIndex].value,oPartida);
</script>
<%else%>
<OPTION Value="<%=oRegistroCa("COD_DEP")%>"><%=oRegistroCa ("Nom_Dep")%> </option>
<%end if
oRegistroCa.MoveNext
LOOP
oRegistroCa.close
%>
</SELECT>
</td>

Y esto va en los otros dos combos

<td width="31%" height="30" colSpan="2" style="WIDTH: 31%">
<SELECT name="cmbprovincia" onchange="UpdateSelect('cmbdistrito','frmgrabar',t his.options[this.selectedIndex].value,oPartida);" style="FONT-SIZE: 8pt; WIDTH: 232px; HEIGHT: 148px">
<option>[Seleccione un valor]</option>
</SELECT>
</td>
<td width="31%" height="30" style="WIDTH: 31%" colSpan=4>
<SELECT id=cmbdistrito1 style="FONT-SIZE: 8pt; WIDTH: 232px; HEIGHT: 148px" name="cmbdistrito">
<option>[Seleccione un valor]</option>
</SELECT>
</td>

En el siguiente mensaje te envio el archivo .js
__________________
<script language=VbScript>
msgbox "Gracias por Leer este mensaje, si puedes respondelo"
</script>