JavaScript - Ocultar filas

 
Vista:

Ocultar filas

Publicado por Aritz (14 intervenciones) el 16/04/2007 15:24:49
Hola de nuevo (se me ha escapado el Intro sin querer).
Estoy intentando que din ámicamnete se muestren/oculten ciertas filas de una tabla. El problema es que aunque me oculte y me muestre las filas cuando se lo pido, al ocultar la fila deja dicha fila sin ningún tipo de información, y al volver a pedir la información la muestra en una nueva fila.

La función Javascrit que uso es la siguiente;

function ShowRow(n)
{
switch(parseInt(n))
{
case 0:
{
$("time").style.display = "none";
$("date").style.display = "block";
break;
}
case 1:
{
$("time").style.display = "block";
$("date").style.display = "none";
break;
}
default:
{
$("time").style.display = "none";
$("date").style.display = "none";
break;
}
}
}

Y la tabla es la siguiente:

<div id='estadoMaquina'>
<table class='estado'>
<tr class='encabezado'>
<td>Variable</td>
<td>Value</td>
</tr>
<tr class='impar'>
<td>Date</td>
<td id='fecha'>Valor_fecha</td>
<td width=15><img src='../imagenes/edit.png' alt='Edit' onclick='ShowState(\"0\")'></td>
</tr>
<tr id='date' style='display:none;'>
<td colspan=2>
<form>
Set Date:
<input id='day' value='dd' size=2>
/
<input id='month' value='mm' size=2>
/
<input id='year' value='aaaa' size=4>
<input type='button' value='Submit' onclick='CambiarFecha(\"RTC.DATE\")'>
</form>
</td>
</tr>
<tr class='par'>
<td>Time</td>
<td id='hora'>Valor_Hora</td>
<td width=15>
<img src='../imagenes/edit.png' alt='Edit' onclick='ShowState(\"1\")'>
</td>
</tr>
<tr id='time' style='display:none;'>
<td colspan=2>
<form>
Set Time:
<input value='hh'size=2 id='hour'>
:
<input id='min' value='mm' size=2>
<select id='format'>
<option value='24h'>24h</option>
<option value='am/pm'>AM/PM</option>
</select>
<input type='button' value='Submit' onclick='CambiarHora(\"RTC.TIME\")'>
</form>
</td>
</tr>
</table>
</div>

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ocultar filas

Publicado por Gonzalo (107 intervenciones) el 16/04/2007 16:02:47
Mmmm... no veo que por ahí llames a la función ShowRow(), y tampoco me queda muy claro qué quieres decir con que al ocultar se queda sin información y al pedir la información la enseña en una nueva. si puedes explicarlo un poco por favor...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar filas

Publicado por Aritz (14 intervenciones) el 16/04/2007 16:11:10
La función se llama bien... Ha sido un fallo al copiar el codigo... ShowRow == ShowState, me ha traicionado el subcopnsiente al copiar la parte del código que me daba el problema.
Si la siguiente imagen es la tabla

___________ROW 1_____________
___________ROW 2_____________
___________ROW 3_____________

Le pido que me muestre una subfila de ROW 2, y me hace lo siguiente

___________ROW 1______________
___________ROW 2______________
___________ROW 2.1____________
___________ROW 3______________

Hasta aquí bien, ahora es cuando viene el problema, le pido que me muestre una subfila de ROW 3, en cuyo caso se ocultada ROW 2.1. Hace lo siguiente:

___________ROW 1______________
___________ROW 2______________

___________ROW 3______________
___________ROW 3.1____________

Si siguieramso cambiando de filas iria haciendo lo siguiente:

___________ROW 1______________
___________ROW 2______________

___________ROW 2.1_____________
___________ROW 3______________

..

___________ROW 1______________
___________ROW 2______________


___________ROW 3______________

___________ROW 3.1____________

Y así sucesivamente, sumando una fila vacía entre la fila padre y su fila hijo cada vez que pido que me la muestre. Espero haber aclarado el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar filas

Publicado por Gonzalo (107 intervenciones) el 16/04/2007 17:42:39
Ah, bien...

Claramente es porque no es buena idea ocultar y mostrar TRs de un TD. La composición de tablas HTML es compleja y en general los navegadores no las manejan muy bien.

Tienes dos soluciones:

a. usar DIVs

<table>
<tr>
<td>
blablalbla
<div id="date">talycual</div>
</td>
</tr>
<table>


b. reconstruir la tabla cada vez.

Es decir, cada vez que necesites cambiar el contenido de la tabla, te montas una cadena de con el contenido de la tabla y haces un...
document.getElementById("miTabla").innerHTML = cadena;


Lógicamente la opción b es más trabajosa y menos elegante (y tarda algo más en tiempo de ejecución), pero es más fácil de posicionar. La desventaja de la opción a es sólo que tienes que ajustar bien la colocación de los DIVs para que queden bien donde quieres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar filas

Publicado por Aritz (14 intervenciones) el 17/04/2007 08:43:32
Gracias Gonzalo, una vez más!
Ahora si que me funciona perfectamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar