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

Registrar control personalizado

Estas en el tema de Registrar control personalizado en el foro de ASPX (.net) en Foros del Web. Muy buenas. Estoy teniendo problemas para utilizar un control personalizado que he creado. En VS 2008 tengo una solución con dos proyectos, la aplicación web ...
  #1 (permalink)  
Antiguo 10/11/2008, 12:13
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Registrar control personalizado

Muy buenas.

Estoy teniendo problemas para utilizar un control personalizado que he creado.
En VS 2008 tengo una solución con dos proyectos, la aplicación web y la librería de clases para los controles personalizados.

El código del control es:
Código PHP:
Imports System
Imports System
.Collections.Generic
Imports System
.ComponentModel
Imports System
.Text
Imports System
.Web
Imports System
.Web.UI
Imports System
.Web.UI.WebControls
Imports System
.Security
Imports System
.Security.Permissions


<AssemblyTagPrefix("ControlesPersonalizados""cpers")> 
Namespace ControlesPersonalizados

    
<ParseChildren(True"Titulo"), _
    DefaultProperty
("Titulo"), _
    ToolboxData
("<{0}:CuadroNotas ID=""CuadroNotasID"" Titulo=""Título"" runat=""server""> </{0}:CuadroNotas>")> _
    
Public Class CuadroNotas
        Inherits WebControl

        
Private _titulo As String ""
        
Private _ancho As String "200px"
        
Private _flotar As String "right"

        
<Description("Establece u obtiene el título del cuadro de notas contenido en una equita <h1>"), _
        Category
("Propiedades personalizadas"), _
        DefaultValue
("Notas")> _
        
Public Overridable Property Titulo() As String
            Get
                
Return _titulo
            End Get
            Set
(ByVal value As String)
                
_titulo value
            End Set
        End Property

        
<Description("Establece u obtiene el ancho del control especificado en el atributo como style='width: ancho;'."), _
        Category
("Propiedades personalizadas"), _
        DefaultValue
("200px")> _
        
Public Property Ancho() As String
            Get
                
Return _ancho
            End Get
            Set
(ByVal value As String)
                
_ancho value
            End Set
        End Property

        
<Description("Establece u obtiene la posición flotante del control especificado en el atributo como style='float: flotar;'."), _
        Category
("Propiedades personalizadas"), _
        DefaultValue
("right")> _
        
Public Property Flotar() As String
            Get
                
Return _flotar
            End Get
            Set
(ByVal value As String)
                
_flotar value
            End Set
        End Property

        
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
            
writer.Write(String.Format("<div class='cuadroNotas' style='float: {0}; width: {0};'>"FlotarAncho))
            
writer.Write(String.Format("<h1>{0}</h1>"Titulo))
            
writer.Write("<div class='contenidoCuadroNotas'>")
            
MyBase.Render(writer)
            
writer.Write("</div>")
            
writer.Write("</div>")
        
End Sub

    End 
Class

End Namespace 
Genero el proyecto de la librería de clases y automáticamente me aparece en la caja de herramientas mi control CuadroNotas.

Lo añado a una página ASPX y esto es lo que obtengo:
Código PHP:
<%@ Register Assembly="ControlesPersonalizados" Namespace="ControlesPersonalizados.ControlesPersonalizados"
    
TagPrefix="cc1" %>
.....
<
cc1:CuadroNotas ID="CuadroNotasID" runat="server" Titulo="Título">
    </
cc1:CuadroNotas
Para empezar, TagPrefix debería aparece como "cpers" y no "cc1" y el error al intentar generar el sitio es: Unknown server tag 'cc1:CuadroNotas'.

¿Qué hago mal, dónde está el fallo?

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 20/11/2008, 07:18
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Registrar control personalizado

He probado a hacer lo siguiente y resulta:
Código PHP:
Dim cn As New [B][COLOR="Red"]ControlesPersonalizados.ControlesPersonalizados[/COLOR][/B].CuadroNotas
            cn
.Titulo "Control de notas"
            
cn.ClaseCSSNotas "cuadroNotas"
            
cn.ClaseCSSContenidoNotas "contenidoCuadroNotas"
            
Me.Panel1.Controls.Add(cn 
Por tanto, cómo debería ser la directiva para registrar el control y usarlo en tiempo de diseño:
Código PHP:
<%@ Register Assembly="ControlesPersonalizados.ControlesPersonalizados" Namespace="ControlesPersonalizados.ControlesPersonalizados" 
    
TagPrefix="cc1" %> 
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 25/11/2008, 03:29
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Registrar control personalizado

Bueno, la cuestión ya está solucionada. El problema radicaba en la ubicación de la carpeta donde se estaba diseñando el proyecto. Era una carpeta mapeada en un servidor interno de la oficina, en lugar de en mi equipo de manera local.

El sitio web estaba en la unidad mapeada, de manera que se pudiera ver en la intranet (mediante IIS) cómo iba quedando el proyecto desde cualquier equipo, por ejemplo, para no hacer al jefe venir a mi despacho para ver los avances . a parte de que en el servidor se realizan las copias de seguridad diarias

La librería de controles personalizados sí que la tenía que crear en local, porque si no, daba problemas.

Finalmente he optado por pasarlo todo a local y funciona a las mil maravillas. Lo que haré será crear una tarea en mi equipo para que todos los haga copia del proyecto en el servidor.

Un saludo y gracias.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 16:23.