Foros del Web » Programando para Internet » Javascript »

rellenar lista a partir Collection

Estas en el tema de rellenar lista a partir Collection en el foro de Javascript en Foros del Web. Hola, estoy intentando hacer algo que tiene que poder hacerse, pero no lo consigo. Quiero obtener una lista con el siguiente formato: var select = ...
  #1 (permalink)  
Antiguo 17/05/2011, 10:36
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 11 años
Puntos: 1
rellenar lista a partir Collection

Hola, estoy intentando hacer algo que tiene que poder hacerse, pero no lo consigo. Quiero obtener una lista con el siguiente formato:

var select = { '1': 'US', '2': 'UK' };

y lo estoy intentando rellenar a partir de una colección de mi action. En mi jsp tengo lo siguiente:
Código HTML:
var listOfTypeGate = new Array();
			<s:iterator value="gateTypeList">
				listOfTypeGate.push({id:<s:property value="idGateType"/>,value:'<s:property value="name"/>'}); 
			</s:iterator> 
con ésto consigo los valores que quiero, el 1 y el 2 serían el id, y US y UK sería el value. Pero no consigo formar la lista. El siguiente intento por ejemplo me dá error, para intentar meter los dos primeros datos, el 1 y US:
Código HTML:
var lista = new Array();
			lista.push("'"+listOfTypeGate[0].id+ "'" : "'"+listOfTypeGate[0].value+"'");
no le gusta el ":". Le he dado mil vueltas pero no lo consigo, y necesito ese formato para una tabla con jqgrid. Alguien me puede echar un cable? Muchas gracias, un saludo
  #2 (permalink)  
Antiguo 17/05/2011, 10:53
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 10 años, 7 meses
Puntos: 1485
Respuesta: rellenar lista a partir Collection

buenas,
no le agrada los dos puntos porque no es una sintaxis bien formada. si bien entiendo tu agregar un objeto literal al array. fijate que en el metodo push te faltan las llaves ({ }) para delimitar un objeto literal.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 17/05/2011, 11:09
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 11 años
Puntos: 1
Respuesta: rellenar lista a partir Collection

Hola, aunque ponga lo siguiente:
Código HTML:
lista.push({"'"+listOfTypeGate[0].id+ "'" +' : '+ "'"+listOfTypeGate[0].value+"'"});
me sigue diciendo "Se esperaba : ". Igual el problema es que no tengo que rellenar un array, es otro tipo de objeto, pero no sé cual puede ser. O tengo que rellenar el array de otra manera. He intentado tb:
Código HTML:
var select = {"'"+listOfTypeGate[0].id+ "'" +' : '+ "'"+listOfTypeGate[0].value+"'"}; 
y tb:
Código HTML:
var select = {"'"+listOfTypeGate[0].id+ "' : '"+listOfTypeGate[0].value+"'"};
pero no le gusta tampoco. ¿Se te ocurre dónde puede estar el error? De verdad que no consigo sacarlo, y es muy importante.
Muchas gracias
  #4 (permalink)  
Antiguo 17/05/2011, 11:26
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 10 años, 7 meses
Puntos: 1485
Respuesta: rellenar lista a partir Collection

no se que decirte porque no trabajo con jsp. sin embargo, ¿jsp no tiene alguna funcion para convertir datos a json? ya que eso es lo que parece que estas haciendo. es mucho mas facil que en lugar de revolcarte con un bucle para crear cada entrada con push.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 18/05/2011, 03:43
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 11 años
Puntos: 1
Respuesta: rellenar lista a partir Collection

Acabo de encontrar la solución!! Lo he intentado hacer con json, pero la librería json.js no era aceptada por mi jsp, me daba error. Al final lo he conseguido según lo intentaba al principio, de modo que los objetos que necesito quedan como siguen:

Código HTML:
var objTypeGate = {
				<s:iterator value="gateTypeList" status="typeStatus">
					'<s:property value="idGateType"/>' :'<s:property value="name"/>'
					<s:if test="!#typeStatus.last">,</s:if> 				
				</s:iterator>
				};
				
			var objZoneGate = {
				<s:iterator value="zoneGateList" status="zoneStatus">
					'<s:property value="idZoneGate"/>' :'<s:property value="name"/>'
					<s:if test="!#zoneStatus.last">,</s:if> 				
				</s:iterator>
				};
				
			var objStandGate = {
				<s:iterator value="standList" status="standStatus">
					'<s:property value="idStand"/>' :'<s:property value="standCode"/>'
					<s:if test="!#standStatus.last">,</s:if> 				
				</s:iterator>
				};
y así consigo que tengan el formato adecuado. Muchas gracias de todos modos por la ayuda, me ha hecho conocer algo más tb de json, no sabía que había la posibilidad de utilizarlo en la jsp sin traer el objeto del servidor.

Un saludo

Etiquetas: collection, lista, rellenar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:25.