llenar un combo

09/10/2005 - 12:22 por Enrique | Informe spam
hola a todos,

quisiera saber si lo mejor para llenar un combo conociendo los elementos de
antemano, se debe hacer manualmente o mediante base de datos.

si cargo los elementos manualmente, creando las opciones en el codigo o en
el entorno de desarrollo, tendré un codigo bastante mas denso, mas amplio.

si cargo los elementos accediendo a una base de datos, tendre que conectar a
esta base de datos, crear un recordset y hacer un SELECT.

yo opino que si los elementos son conocidos de antemano, lo logico es
ponerlos manualmente, dejando el uso de la base de datos a datos que pueden
crecer y decrer.

por otro lado, entiendo que si cargar el combo desde una base de datos
supone un desarrollo mas rapido (es mas rapido copiar los datos de forma
masiva a una tabla de base de datos y acceder a ella que currarse todas las
opciones a mano) , se puede emplear esta tecnica

¿que opinais?

gracias por vuestra ayuda

Preguntas similare

Leer las respuestas

#1 dani castillo
09/10/2005 - 18:22 | Informe spam
puedes (y deberias) hacer un "hibrido"

me explico, tu quieres optar entre
<select name=...>
<option value=1>primera<>
etc

y hacer un bucle con un recordset no?


vale, pues si los elementos se conocen de antemano puedes ponerlos en un
string, y luego tratarlos en bucle

opciones="1|primeraopcion,2|segundaopcion,3|terceraopcion..."
es decir, identificador (si lo necesitas) signo "|" (por poner uno) nombre a
mostrar, una coma y el siguiente elemento, asi con todos en una cadena

ahora haces un
opcionesV=split(opciones,",") ''' y ya lo tienes en vector
solo te queda recorrerlo como si fuera un recordset (parecido, pero mil
veces mas rapido)

for k=0 to ubound(opcionesV)
opcion=split(opcionesV[k],"|") ' separamos id y valor
%><option value="<%=opcion[0]%>"><%=opcion[1]%></option><%
next
''' ojo no he revisado el codigo si algo da error ;)

asi tienes un codigo compacto, facilmente modificable en cuanto a datos (lo
hay que cambiar el string que puede estar definido en un include o al
principio del codigo) y rapido, sin depender de bases de datos

como desventaja, la logica, para modificar los valores hay que modificar el
codigo

si te acostumbras a trabajar con variables "spliteadas" para representar
vectores de valores veras que es muy comodo para muchisimas cosas, de hecho
la funcion de crear el combo a partir de una variable string con los valores
a mostrar puede ser siempre la misma con independencia de lo que quieras
mostrar, y pasarle por parametro los valores a mostrar como una cadena de
texto separada por algun separador ( lo de la coma era un ejemplo, mejor
usar un signo que dificilmente pueda aparecer en el texto, la # por ejemplo
o doble ## o similares)


"Enrique" escribió en el mensaje
news:%
hola a todos,

quisiera saber si lo mejor para llenar un combo conociendo los elementos
de
antemano, se debe hacer manualmente o mediante base de datos.

si cargo los elementos manualmente, creando las opciones en el codigo o en
el entorno de desarrollo, tendré un codigo bastante mas denso, mas amplio.

si cargo los elementos accediendo a una base de datos, tendre que conectar
a
esta base de datos, crear un recordset y hacer un SELECT.

yo opino que si los elementos son conocidos de antemano, lo logico es
ponerlos manualmente, dejando el uso de la base de datos a datos que
pueden
crecer y decrer.

por otro lado, entiendo que si cargar el combo desde una base de datos
supone un desarrollo mas rapido (es mas rapido copiar los datos de forma
masiva a una tabla de base de datos y acceder a ella que currarse todas
las
opciones a mano) , se puede emplear esta tecnica

¿que opinais?

gracias por vuestra ayuda







Respuesta Responder a este mensaje
#2 Enrique
09/10/2005 - 18:44 | Informe spam
muy bien. gracias por tu respuesta. me gusta el split tambien por su
comodidad.




"dani castillo" escribió en el mensaje
news:#
puedes (y deberias) hacer un "hibrido"

me explico, tu quieres optar entre
<select name=...>
<option value=1>primera<>
etc

y hacer un bucle con un recordset no?


vale, pues si los elementos se conocen de antemano puedes ponerlos en un
string, y luego tratarlos en bucle

opciones="1|primeraopcion,2|segundaopcion,3|terceraopcion..."
es decir, identificador (si lo necesitas) signo "|" (por poner uno) nombre


a
mostrar, una coma y el siguiente elemento, asi con todos en una cadena

ahora haces un
opcionesV=split(opciones,",") ''' y ya lo tienes en vector
solo te queda recorrerlo como si fuera un recordset (parecido, pero mil
veces mas rapido)

for k=0 to ubound(opcionesV)
opcion=split(opcionesV[k],"|") ' separamos id y valor
%><option value="<%=opcion[0]%>"><%=opcion[1]%></option><%
next
''' ojo no he revisado el codigo si algo da error ;)

asi tienes un codigo compacto, facilmente modificable en cuanto a datos


(lo
hay que cambiar el string que puede estar definido en un include o al
principio del codigo) y rapido, sin depender de bases de datos

como desventaja, la logica, para modificar los valores hay que modificar


el
codigo

si te acostumbras a trabajar con variables "spliteadas" para representar
vectores de valores veras que es muy comodo para muchisimas cosas, de


hecho
la funcion de crear el combo a partir de una variable string con los


valores
a mostrar puede ser siempre la misma con independencia de lo que quieras
mostrar, y pasarle por parametro los valores a mostrar como una cadena de
texto separada por algun separador ( lo de la coma era un ejemplo, mejor
usar un signo que dificilmente pueda aparecer en el texto, la # por


ejemplo
o doble ## o similares)


"Enrique" escribió en el mensaje
news:%
> hola a todos,
>
> quisiera saber si lo mejor para llenar un combo conociendo los elementos
> de
> antemano, se debe hacer manualmente o mediante base de datos.
>
> si cargo los elementos manualmente, creando las opciones en el codigo o


en
> el entorno de desarrollo, tendré un codigo bastante mas denso, mas


amplio.
>
> si cargo los elementos accediendo a una base de datos, tendre que


conectar
> a
> esta base de datos, crear un recordset y hacer un SELECT.
>
> yo opino que si los elementos son conocidos de antemano, lo logico es
> ponerlos manualmente, dejando el uso de la base de datos a datos que
> pueden
> crecer y decrer.
>
> por otro lado, entiendo que si cargar el combo desde una base de datos
> supone un desarrollo mas rapido (es mas rapido copiar los datos de forma
> masiva a una tabla de base de datos y acceder a ella que currarse todas
> las
> opciones a mano) , se puede emplear esta tecnica
>
> ¿que opinais?
>
> gracias por vuestra ayuda
>
>
>
>
>
>
>



Respuesta Responder a este mensaje
#3 dani castillo
09/10/2005 - 19:06 | Informe spam
si, bueno yo lo uso bastante, una vez ya te has acostumbrado es facil hacer
rutinas genericas de este tipo y tenerlas todas en un include (para hacer
combo, o lista, o serie de radiobuttons, etc) y reusarlas facilmente

tambien uso algo similar para los campos de un recordset que quiero mostrar
en una tabla por ejemplo, los pongo en una cadena de texto al principio ,
algo como campos="id,nombre,apellidos,telefono..." y luego hago el split
camposV=split(campos,","), hago dos bucles anidados, uno para el recordset y
otro para los campos donde muestro el rs(camposV[k])

de esta forma si en el futuro un cliente me pide que varie el orden de los
campos listados, o que incluya o saque algunos, solo debo modificar la
cadena de campos a mostrar... =D

de nuevo el codigo queda reutilizable ademas, es muy sencillo hacer una
rutina que pille un recordset (o el nombre de una tabla y una conexion, o
una conexion, una tabla y un filtro, etc) , una cadena de campos, y te
muestre una lista , el codigo luego queda muy muy compacto y reutilizable al
usar siempre esas funciones , permitiendo ademas variar la estetica o
optimizar todos los listados tocando solo una funcion ... =D


"Enrique" escribió en el mensaje
news:%23jF$
muy bien. gracias por tu respuesta. me gusta el split tambien por su
comodidad.




"dani castillo" escribió en el mensaje
news:#
puedes (y deberias) hacer un "hibrido"

me explico, tu quieres optar entre
<select name=...>
<option value=1>primera<>
etc

y hacer un bucle con un recordset no?


vale, pues si los elementos se conocen de antemano puedes ponerlos en un
string, y luego tratarlos en bucle

opciones="1|primeraopcion,2|segundaopcion,3|terceraopcion..."
es decir, identificador (si lo necesitas) signo "|" (por poner uno)
nombre


a
mostrar, una coma y el siguiente elemento, asi con todos en una cadena

ahora haces un
opcionesV=split(opciones,",") ''' y ya lo tienes en vector
solo te queda recorrerlo como si fuera un recordset (parecido, pero mil
veces mas rapido)

for k=0 to ubound(opcionesV)
opcion=split(opcionesV[k],"|") ' separamos id y valor
%><option value="<%=opcion[0]%>"><%=opcion[1]%></option><%
next
''' ojo no he revisado el codigo si algo da error ;)

asi tienes un codigo compacto, facilmente modificable en cuanto a datos


(lo
hay que cambiar el string que puede estar definido en un include o al
principio del codigo) y rapido, sin depender de bases de datos

como desventaja, la logica, para modificar los valores hay que modificar


el
codigo

si te acostumbras a trabajar con variables "spliteadas" para representar
vectores de valores veras que es muy comodo para muchisimas cosas, de


hecho
la funcion de crear el combo a partir de una variable string con los


valores
a mostrar puede ser siempre la misma con independencia de lo que quieras
mostrar, y pasarle por parametro los valores a mostrar como una cadena de
texto separada por algun separador ( lo de la coma era un ejemplo, mejor
usar un signo que dificilmente pueda aparecer en el texto, la # por


ejemplo
o doble ## o similares)


"Enrique" escribió en el mensaje
news:%
> hola a todos,
>
> quisiera saber si lo mejor para llenar un combo conociendo los
> elementos
> de
> antemano, se debe hacer manualmente o mediante base de datos.
>
> si cargo los elementos manualmente, creando las opciones en el codigo o


en
> el entorno de desarrollo, tendré un codigo bastante mas denso, mas


amplio.
>
> si cargo los elementos accediendo a una base de datos, tendre que


conectar
> a
> esta base de datos, crear un recordset y hacer un SELECT.
>
> yo opino que si los elementos son conocidos de antemano, lo logico es
> ponerlos manualmente, dejando el uso de la base de datos a datos que
> pueden
> crecer y decrer.
>
> por otro lado, entiendo que si cargar el combo desde una base de datos
> supone un desarrollo mas rapido (es mas rapido copiar los datos de
> forma
> masiva a una tabla de base de datos y acceder a ella que currarse todas
> las
> opciones a mano) , se puede emplear esta tecnica
>
> ¿que opinais?
>
> gracias por vuestra ayuda
>
>
>
>
>
>
>








Respuesta Responder a este mensaje
#4 Enrique
09/10/2005 - 20:21 | Informe spam
muchas gracias por tus explicaciones. siempre es bueno saber de la
experiencia de los demas.
Respuesta Responder a este mensaje
#5 Matías Iacono
10/10/2005 - 17:18 | Informe spam
En realidad depende del alcanze de tu aplicacion.

Si tu aplicacion, o tu combo NUNCA debera interactuar con el usuario, o sea,
no necesitas que en un futuro tenga mas opciones, o quieres que el usuario
lo personalize.

Pues escribelo a mano, despues de todo es puro HTML, y le quitas carga al
servidor de tener que procesar codigo en el servidor para luego sacar el
mismo HTML que tu haz puesto a mano.

Si en algun momento, remoto, pero posible, necesitaras que ese combo sea
administrado, metelo en la DB.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3
"Enrique" escribió en el mensaje
news:%
hola a todos,

quisiera saber si lo mejor para llenar un combo conociendo los elementos
de
antemano, se debe hacer manualmente o mediante base de datos.

si cargo los elementos manualmente, creando las opciones en el codigo o en
el entorno de desarrollo, tendré un codigo bastante mas denso, mas amplio.

si cargo los elementos accediendo a una base de datos, tendre que conectar
a
esta base de datos, crear un recordset y hacer un SELECT.

yo opino que si los elementos son conocidos de antemano, lo logico es
ponerlos manualmente, dejando el uso de la base de datos a datos que
pueden
crecer y decrer.

por otro lado, entiendo que si cargar el combo desde una base de datos
supone un desarrollo mas rapido (es mas rapido copiar los datos de forma
masiva a una tabla de base de datos y acceder a ella que currarse todas
las
opciones a mano) , se puede emplear esta tecnica

¿que opinais?

gracias por vuestra ayuda







Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida