Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Control Personalizado (http://www.forosdelweb.com/f29/control-personalizado-349757/)

Thessen 14/11/2005 03:32

Control Personalizado
 
Hola a todos.
Estoy creando un Control Personalizado con VB.NET al cual le quiero agregar una propiedad que sea una coleccíon ( o en su defecto un array de una clase creada por mi). Hasta ahí todo bien, pero a la hora de asignar dicha propiedad (en tiempo de diseño) al control, me sale la ventanita tipica con los botones de añadir y eliminar elimento, pero cuando salgo de dicha ventana no almacena los valores introducidos.
Alguien me puede echar una mano? Muchas gracias

xknown 14/11/2005 17:12

Si pusieras el código que tienes, talvez alguien podría ayudarte mejor...

Saludos

Thessen 15/11/2005 02:50

Control Personalizado
 
Hola, ante todo, gracias por responder porque llevo ya un tiempo intentando encontrar una solucion. El caso es que el código no lo tengo aqui, pero te pongo uno que es mas o menos la idea que tengo de hacerlo.

Public Class CustomControl
Inherits System.Web.UI.WebControls.WebControl

Private _items as ClassItem ()
<Browsable (True), Categorie ("Appearance")> _
Public Property Items() as ClassItem ()
Get
return _items
End Get
Set (value as ClassItem ())
_items = value
End Set
end Property

Public Sub New ()
..........
End Sub

Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
.........
End Sub
End Class

Public Class ClassItem
Private _property1 as string
Public Property Property1 as string
Get
return _property1
End Get
Set (value as string)
_property1 = value
End Sub
End Property

Private _property2 as string
Public Property Property2 as string
Get
return _property2
End Get
Set (value as string)
_property2 = value
End Sub
End Property

..........................
End Class


Mi idea es que cuando yo haga click (en el explorador de propiedades) sobre la propiedad "Items" de mi control, me aparezca el editor de propiedades, hasta ahi todo bien. Pero cuando cierro el editor de propiedades no me guarda los valores de mi propiedad.
He pensado que lo mas indicado ( a lo mejor me equivoco ) sería heredar mi clase ClassItem de System.Collections.CollectionBase e implementar los métodos Add, Insert, Remove, ... ya que necesito que tambien este indizada para poder acceder a los items desde código. Pero lo he intentado obteniendo el mismo resultado.

Espero que no sea mucha parrafada y que me podais ayudar. Muchas gracias.

xknown 15/11/2005 14:04

Lo que me extraña es que hagas preguntas de controles web en la sección de aplicaciones de escritorio....; me parce que tu problema radica en que no creas el objeto _items, en todo caso eso lo deberías hacer en el constructor de CustomControl:
Código:

Public Sub New ()
  _items = New ClassItem() {}
End Sub

Saludos

Thessen 16/11/2005 03:15

Control Personalizado
 
Muchas gracias xknown era eso lo que me fallaba. Aunque he tenido que hacerlo con una colección me seguía fallando porque no la instanciaba en el NEW de mi control.

Si he puesto el post en este foro es porque creo que mi problema se puede trasladar perfectamente a controles windows y hay mas gente que desarrolle controles para windows que para web (o eso creo), asi que mas opciones de encontrar una solución.

De nuevo muchas gracias, no sabes el tiempo que llevo intentando solucionar esto. Un saludo.

xknown 16/11/2005 10:49

Me alegra de que te haya servido, en cuanto al mensaje, no es cuestión de donde haya más gente que desarrolle determinadas cosas, sino es una cuestión de orden.

Saludos


La zona horaria es GMT -6. Ahora son las 21:35.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.