Ver Mensaje Individual
  #11 (permalink)  
Antiguo 20/07/2005, 08:17
Avatar de neivan
neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Ya me va perfecto.

En resumen,para poder actualizar una columna de tipo texto rapidamente sin tener que ir fila por fila editando y guardando.

Primero añadimos una columna de tipo template column y le metemos un textbox de tipo html.

Relacionamos el textbox con el campo de la bd :
Yo lo hago asi:
<input type="text" .... value='<%# Container.Dataitem ("Observaciones") %>'

De alguna manera es interesante ir sabiendo que textos han sido modificados para lo cual edito el evento onChanged en el lado de lcliente y voy alamcenando en una cadena a traves de una función javascript los que va cambiando.

<input type="text" ..... onchange='javascript:add( "<%# (Container.Dataitem ("code")).toString %>" ) ;'

<head>
<script>
function add(valor)
{


var inf = document.getElementById('text').value;
if (inf.indexOf(valor)==-1)
{
document.getElementById('text').value = document.getElementById('text').value + valor + "#";

}


//document.getElementById('text').setAttribute('valu e',document.getElementById('text').getAttribute('v alue')+valor);

}

</script>
</head>
La cadena la almaceno en :
<input id="text" type="hidden" name="text" />

Ya tengo indentificados los textos que se han modifcado en uan cadena,a traves de un codigo identificativo para cada una de als filas q me apsa la cosulta y q le he llamado cod.

Bien esta cadena la puedo pasar al servidor con un boton :

<input id="button1" onclick='alert("Se dispone a guardar las obervaciones.");javascript:__doPostBack("Guardar", document.getElementById("text").value);' type="button" value="Guardar" name="button1" runat="server" />

y lo recojo de este modo en el page load:

Page.GetPostBackEventReference(Page)
if request.form.item("__eventtarget") = "Guardar" then
dim cadena as string cadena=Convert.toString(request.Form.Item("__event argument"))
end if


bien ahora nos quedaria tener a mano el texto de cada fila.Para identificar a cada texto le asignamos a su name y su id este coigo q pasamos en la cadena.

<input type="text" name='text<%# Container.Dataitem ("code") %>' id='text<%# Container.Dataitem ("code") %>' ...

de esta manera con un simple :

request.Form("text" & codigo)
El codigo lo sacariamos de la cadena que pasamos anteriomente por lo que
tendriamos el texto ya y el codigo al q corresponde

Solo quedaria la update en un bucle q recorra los diferentes codes pasados.salu2