Foros del Web » Programación para mayores de 30 ;) » .NET »

crear y destruir controles por programacion

Estas en el tema de crear y destruir controles por programacion en el foro de .NET en Foros del Web. Amigos 1. Necesito que cuando encuentre un error en la captura de cierto campo, crear un panel (desde programacion) con un boton adentro y mostrarlo. ...
  #1 (permalink)  
Antiguo 04/04/2008, 10:38
 
Fecha de Ingreso: octubre-2007
Mensajes: 107
Antigüedad: 17 años, 1 mes
Puntos: 1
crear y destruir controles por programacion

Amigos

1. Necesito que cuando encuentre un error en la captura de cierto campo, crear un panel (desde programacion) con un boton adentro y mostrarlo.

2. Cuando de click al boton me destruya el panel y el boton.

Es posible hacer esto desde programación? y como se haría?

Gracias
  #2 (permalink)  
Antiguo 04/04/2008, 11:53
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 2 meses
Puntos: 87
Re: crear y destruir controles por programacion

pues si les defines el id a los controles puedes hacer un remove de los mismos.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 08/04/2008, 10:55
 
Fecha de Ingreso: octubre-2007
Mensajes: 107
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: crear y destruir controles por programacion

peterpay, gracias por responder.

Pero como quedaría el codigo fuente?
  #4 (permalink)  
Antiguo 08/04/2008, 16:16
 
Fecha de Ingreso: febrero-2008
Mensajes: 5
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: crear y destruir controles por programacion

try

catch Exception as ex
dim pnl as new Panel
Dim Boton as new Button
pnl.controls.add(Boton)
page.controls.add(pnl)
pnl.id="miPaneltemporal"
AddHandler Boton.Click, AddressOf Botton_click
end try

Protected Sub Botton_click(ByVal sender As Object, ByVal e As System.EventArgs)
dim control as WebControl = page.FindControl("miPaneltemporal")
page.controls.remove(control)
End Sub


Seria algo asi

Saludos
Giancarlo huarcaya Martinez
[email protected]
  #5 (permalink)  
Antiguo 10/04/2008, 10:42
 
Fecha de Ingreso: octubre-2007
Mensajes: 107
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: crear y destruir controles por programacion

gcaqp

Gracias. Me sacaba error pero le cambie page por el nombre del form "form1" y me funciono.

Gracias de nuevo
  #6 (permalink)  
Antiguo 21/04/2008, 16:35
 
Fecha de Ingreso: octubre-2007
Mensajes: 107
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: crear y destruir controles por programacion

me salio otro problema.

Tengo un boton que cuando le doy click me crea un panel y dentro del panel me crea un dropdownlist y un boton. hasta aqui todo funciona perfecto.

Resulta que cuando selecciono una opcion del dropdownlist se me desaparece el panel y todo su contenido. que puede ser?
  #7 (permalink)  
Antiguo 21/04/2008, 16:41
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 2 meses
Puntos: 87
Re: crear y destruir controles por programacion

pon tu codigo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #8 (permalink)  
Antiguo 21/04/2008, 18:18
 
Fecha de Ingreso: octubre-2007
Mensajes: 107
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: crear y destruir controles por programacion

Gracias peterpay

Este es mi codigo

----------------------------------------

Partial Class frm_principal
Inherits System.Web.UI.Page
Dim panel_mensaje As New Panel
Dim btn_aceptar_mensaje As New Button
Dim drop_virtual As New DropDownList
Dim listitem_cdvirtual As New ListItem
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack = True Then
End If
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Session("var_panel_mensaje") = True
up_cdvirtual.ContentTemplateContainer.Controls.Add (panel_mensaje)
panel_mensaje.Controls.Add(btn_aceptar_mensaje)
panel_mensaje.Controls.Add(drop_virtual)
sub_crear_panel_algo()
End Sub
Protected Sub btn_aceptar_mensaje_click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim rmv_control As WebControl = form1.FindControl("panel_mensaje")
form1.Controls.Remove(rmv_control)
End Sub
Protected Sub drop_virtual_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

End Sub
Sub sub_crear_panel_algo()
panel_mensaje.ID = "panel_mensaje"
panel_mensaje.BackColor = Drawing.Color.Blue
panel_mensaje.Style.Item("background-color") = "#ffff66"
panel_mensaje.Style.Item("z-index") = "500"
panel_mensaje.Style.Item("position") = "absolute"
panel_mensaje.Style.Item("top") = "200px"
panel_mensaje.Style.Item("left") = "150px"
panel_mensaje.Style.Item("width") = "450px"
panel_mensaje.Style.Item("height") = "350px"
panel_mensaje.EnableViewState = True
panel_mensaje.Visible = True

'form1.Controls.Add(panel_mensaje)

btn_aceptar_mensaje.ID = "btn_aceptar_mensaje"
btn_aceptar_mensaje.BackColor = Drawing.Color.GreenYellow
btn_aceptar_mensaje.Height = "20"
btn_aceptar_mensaje.Width = "100"
btn_aceptar_mensaje.Text = "aceptar"
AddHandler btn_aceptar_mensaje.Click, AddressOf btn_aceptar_mensaje_click

drop_virtual.ID = "drop_virtual"
drop_virtual.Style.Item("background-color") = "#ffff66"
'drop_virtual.Style.Item("z-index") = "700"
drop_virtual.Style.Item("position") = "absolute"
drop_virtual.Style.Item("top") = "20px"
drop_virtual.Style.Item("left") = "16px"
drop_virtual.Style.Item("width") = "110px"
drop_virtual.Style.Item("height") = "10px"

drop_virtual.Items.Add(listitem_cdvirtual.Value.In sert(0, "CREAR"))
drop_virtual.Items.Add(listitem_cdvirtual.Value.In sert(0, "MODIFICAR"))
drop_virtual.Items.Add(listitem_cdvirtual.Value.In sert(0, "TRAER"))
drop_virtual.Items.Add(listitem_cdvirtual.Value.In sert(0, "ELIMINAR"))
drop_virtual.AutoPostBack = True
drop_virtual.EnableViewState = True
AddHandler drop_virtual.SelectedIndexChanged, AddressOf drop_virtual_SelectedIndexChanged
End Sub

End Class
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 14:00.