Foros del Web » Programando para Internet » ASPX (.net) »

Add div dinamicamente en un updatepanel

Estas en el tema de Add div dinamicamente en un updatepanel en el foro de ASPX (.net) en Foros del Web. Hola Que tal, estoy agregando "div's" dinamicamente dentro de otro div en un updatepanel, pero por alguna razon, cada que hago clic en el boton ...
  #1 (permalink)  
Antiguo 16/09/2013, 22:18
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 5 meses
Puntos: 2
Add div dinamicamente en un updatepanel

Hola Que tal, estoy agregando "div's" dinamicamente dentro de otro div en un updatepanel, pero por alguna razon, cada que hago clic en el boton par agregar, lo que se esta haciendo es chancarme el div anterior que e creado. De manera que solo me queda encima el ultimo div. Osea cada que hago clic, no me crea un nuevo div, sino que me chanca encima el primero que e creado, alguna alma caritativa ?

Muchas gracias

Protected Sub BtnMore_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnMore.Click
Dim NuevoDiv As New HtmlControls.HtmlGenericControl("div")
Label1.Text = Now.Hour & Now.Minute & Now.Second

NuevoDiv.ID = Utilities.GenerateUniqueString(3)
NuevoDiv.Attributes.Add("class", "box_1")
Panel1.ContentTemplateContainer.FindControl("dpto_ 1").Controls.Add(NuevoDiv)

End Sub


Ese GenerateUniqueString es un codigo para poner id de manera random.
  #2 (permalink)  
Antiguo 17/09/2013, 10:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 91
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: Add div dinamicamente en un updatepanel

yo te recomendaria mejor usar el JQuery para hacer ese tipo de cosas, el problema es que cada vez que le das click al boton, por tener un runat="server" hace un postback a la pagina, entonces te borra todo y renderiza denuevo y luego carga el div que mandas desde el servidor, por eso piensas que "le cae encima al otro" pero en realidad el mismo postback lo borra.

Puedes usar el JQuery y hacer algo como esto:

En el codigo html de tu pagina pon un boton normal de html (input type="button"...)
y le pones en el onClick un llamado a una funcion que tu crearas, y luego el script quedara algo asi mas o menos:

Código:
 var nextinput=0
 function AgregarCampos(){
	nextinput++;
	var divNuevo ='<div id="' + nextinput + '" class="box_1">Lo que le vayas a poner en medio</div>';
	$("#dpto_ 1").append(divNuevo);
	var tab = document.getElementById("tab");
	
}
Y si necesitas que tengan un texto mandado a llamar desde el servidor, para eso siempre esta el Ajax para hacer un llamado sin postback y obtener un valor en un campo oculto y de ahi obtener el valor en el script para concatenarselo al div que estas creando.

Espero te sirva, Saludos.
  #3 (permalink)  
Antiguo 17/09/2013, 10:32
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Add div dinamicamente en un updatepanel

Gracias por tu respuesta, ayudame a entender un poquito, en este caso yo estoy usando un updatapanel, osea estoy usando Ajax y el boton esta seteado con "AsyncPostBackTrigger", por lo que me dices, entiendo que cada vez que hago un clic se realiza un postback y se reescribe (o renderiza) todo el codigo html del panel.

Por otro lado, que pasa si uso una base de datos ? y cada clic traigo nuevamente toda la info grabada ? en ese caso si me renderizara con todo y el nuevo div creado ? En verdad esa es la intencion que todo esto este guardado en una base de datos.
  #4 (permalink)  
Antiguo 17/09/2013, 10:34
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Add div dinamicamente en un updatepanel

Por otro lado, e probado poniendo un for to next para crear por ejemplo 3 de golpe y tampoco a funcionado, solo me a creado uno. Si fuera el postback creo que me crearia los 3 de todos modos ya que es una sola llamada.
  #5 (permalink)  
Antiguo 17/09/2013, 10:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 91
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: Add div dinamicamente en un updatepanel

Ok mira, entonces el problema es que el div esta creado dentro del updatepanel por lo que me dices, veras, el AsyncPostBackTrigger te sirve para que no te haga un postback de toda la pagina, eso es cierto, pero si te hace un postback del updatepanel, en pocas palabras te renderiza todo el html que este dentro de ese updatepanel.

Lo que debes hacer es usar el updatePanel pero solo para el boton, y aufera crear un Div con Id, que sera al que le iras metiendo los demas Divs de manera dinamica desde tu codigo.

En otras palabras es algo asi

Código HTML:
<asp:updatepanel id="dpto_ 1">
---tu trigger
aca tu boton que manda a llamar al code behind
</asp:updatepanel>

<div id="divAdd" runat="server"></div> 
y cuando mandes a llamar la funcion en vez de agregarle el nuevo div a dpto_ 1, se lo agregaras a divAdd, solo que no sera con lo mismo que usas ahora, porque tu utilizas

Código:
Panel1.ContentTemplateContainer.FindControl("dpto_ 1").Controls.Add(NuevoDiv)
y en realidad solo usarias algo como

Código:
divAdd.Controls.Add(NuevoDiv)
Espero te ayude eso, no lo tomes al pie de la letra, solo es un ejemplo. Saludos.
  #6 (permalink)  
Antiguo 17/09/2013, 10:45
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Add div dinamicamente en un updatepanel

Muchas gracias pos tu respuesta, te cuento que e quitado el updatepanel y para lo mismo. Osea haciendo el postback en toda la pagina, voy a probar lo ultio que me escribes para ver que pasa.

Etiquetas: add, dinamicamente, updatepanel
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 06:45.