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

Manipular un User Control

Estas en el tema de Manipular un User Control en el foro de .NET en Foros del Web. Hola a todos, Tengo un problema, he creado un control de usuario ascx que tiene cajas de texto y botones de opcion adentro, este control ...
  #1 (permalink)  
Antiguo 04/11/2003, 12:31
 
Fecha de Ingreso: octubre-2003
Ubicación: Huancayo - Peru
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Manipular un User Control

Hola a todos,
Tengo un problema, he creado un control de usuario ascx que tiene cajas de texto y botones de opcion adentro, este control esta dentro de un aspx. El archivo aspx tiene que tomar desiciones de acuerdo a lo que el usuario ingresa dentro del control, pero no puedo acceder a los textbox, ni el valor del radiobuttonlist del user control,

dentro del archivo ascx he puesto :

Public Property Opciones() As String
Get
Return RadioButtonList1.SelectedIndex()
End Get
Set(ByVal Value As String)
RadioButtonList1.SelectedIndex = Value

End Set
End Property


dentro del aspx he declarado el User Control :

Public Class WebForm1
....
Protected WithEvents selection1 As
System.Web.UI.UserControl




pero no funciona, trato de llamar a "Opcioens()", asignarle un valor o tomar un valor, pero me dice que el control no esta registrado, pero si puedo utilizar las propiedades del user control "selection1" como el :
Selection1.Visible = True
__________________
La fidelidad es a la vida de las emociones lo que la coherencia a la vida del intelecto. ("El Retrato de Dorian Gray" - Oscar Wilde)
  #2 (permalink)  
Antiguo 04/11/2003, 12:34
 
Fecha de Ingreso: octubre-2003
Ubicación: Huancayo - Peru
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Por favor:

Por favor, si alguien tiene la respuesta o algun ejemplo, se lo agradecería mucho, gracias...
__________________
La fidelidad es a la vida de las emociones lo que la coherencia a la vida del intelecto. ("El Retrato de Dorian Gray" - Oscar Wilde)
  #3 (permalink)  
Antiguo 04/11/2003, 14:44
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Ok.. acabo de hacer un ejemplo que te puede servir..
hice un webusercontrol y una página aspx que incluye al WebUserControl

numberbox.ascx
Cita:
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="numberbox.ascx.vb" Inherits="tu_Proyecto .numberbox" %>
<asp:textbox id="txtNum1" runat="server" />
number.ascx.vb
Cita:
Public MustInherit Class numberbox
Inherits System.Web.UI.UserControl
Protected WithEvents txtNum1 As System.Web.UI.WebControls.TextBox

Public Property pNum() As Integer
Get
Return CInt(txtNum1.Text)
End Get
Set(ByVal Value As Integer)
txtNum1.Text = Value.ToString()
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
txtNum1.Text = "0"
End If

End Sub

End Class
Ahora en tu aspx colocas tus webcontrols, para hacer la suma de esos dos y desplegar el resultado:

archivo.aspx
Cita:
<P>Num1:
<uc1:numberbox id="Numberbox1" runat="server"></uc1:numberbox></P>
<P>+
</P>
<P>Num2:
<uc1:numberbox id="Numberbox2" runat="server"></uc1:numberbox></P>
<P>=
<asp:label id="lblSum" runat="server"></asp:label></P>
<p><asp:button id="Button1" runat="server" Text="Compute"></asp:button></p>

archivo.aspx.vb
...
...
Protected Numberbox1 As numberbox
Protected Numberbox2 As numberbox

y en un boton pones:

Cita:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
lblSum.Text = CStr(Numberbox1.pNum + Numberbox2.pNum)
End Sub
Y listo... accesarás a los valores de tu control a tu aspx.

Espero que te haya servido éste ejemplo.

Saludos y suerte
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 08/11/2003, 11:15
 
Fecha de Ingreso: octubre-2003
Ubicación: Huancayo - Peru
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias

Gracias RootTK, me ha servido bastante.
__________________
La fidelidad es a la vida de las emociones lo que la coherencia a la vida del intelecto. ("El Retrato de Dorian Gray" - Oscar Wilde)
  #5 (permalink)  
Antiguo 06/10/2004, 03:12
 
Fecha de Ingreso: enero-2002
Mensajes: 153
Antigüedad: 22 años, 3 meses
Puntos: 0
Hola RootTK,
demos una vuelta más de tuerca.
Si deseo añadir ese user control en tiempo de ejecución a la página aspx, ¿cómo lo haría?
  #6 (permalink)  
Antiguo 06/10/2004, 08:34
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Una forma rápida y sencilla es colocar un panel en cualquier parte de tu página aspx.. en tu evento Page_Init cargar el control dentro de tu panel

Ejemplo:

Cita:
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
InitializeComponent()
...
...
Panel1.Controls.Add(Page.LoadControl("TuControl.ascx"))
End Sub
  #7 (permalink)  
Antiguo 06/10/2004, 09:01
 
Fecha de Ingreso: enero-2002
Mensajes: 153
Antigüedad: 22 años, 3 meses
Puntos: 0
Muchas gracias.
Pero una pregunta más...
Una vez lo tengo cargado en la página, ¿cómo puedo acceder a una propiedad del user control si no le he dado ningún nombre dentro de la página?
  #8 (permalink)  
Antiguo 06/10/2004, 10:14
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Declaras tu control de ésta forma_

Protected WithEvents wuc1 As WebUserControl1
..
...
..
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
InitializeComponent()
...
..

wuc1 = Page.LoadControl("WebUserControl1.ascx")
Panel1.Controls.Add(wuc1)

End Sub

Y donde desees mandas a llamar a tu variable (por decirlo así) wuc1

wuc1.propiedad = "xxx"

Salu2
  #9 (permalink)  
Antiguo 07/10/2004, 07:25
 
Fecha de Ingreso: enero-2002
Mensajes: 153
Antigüedad: 22 años, 3 meses
Puntos: 0
Perfecto me ha sido de gran ayuda.
Me faltaba declarar el usercontrol, y por eso no me funcionaba.
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 07:05.