Entradas

Mostrando entradas de febrero, 2008

Accediendo desde Webpart a los controles

Webparts es la propuesta Microsoft de bea-Portal, para hacer sitios. bueno la mayor gracia de Webpart es que te da la funcionalidad de arrastrar los paneles por la pagina, y estas son permanentes en el tiempo. como el tiempo es poco y estoy por irme de vacaciones(yupi) en otra ocasion hablere mas del concepto, beneficios y contras de webparts. Nacio de saber como podemos hacer para que webparts cambie un estado en un userControl o control de usuario para asi poder hacer una accion, dependiendo del valor. primero en un WebpartsZone, arrastramos desde la parte derecha (solucion Explorer) nuestro UserControl (ojo que hablo de las que tienen extension ACSX). a nuestro control le definimos un atributo y un property, para que webparts puedas modificar el atributo. Este es el codigo en el aspx <% @ Control Language = "VB" AutoEventWireup = "false" CodeFile = "WebUserControl.ascx.vb" Inherits = "WebUserControl" %> < table > < tr >

Haciendo controles anidados

Muchas veces me he preguntado como hacen .Net para anidar los controles. en mis primeras experiencias al desarrollar mi primer control. me fue imposiblee realizar esto. bueno lo que queremos lograr seria algo como esto: < cc1:MyControl ID = "server" popUpID = "panel1" Title = "este es el titulo" > < cc1:MyControlColumnas label = "Nombre Persona" name = "nombre" runat = "server" Visible = true /> < cc1:MyControlColumnas label = "Edad Persona" name = "edad" runat = "server" Visible = true /> < / cc1:MyControl > bueno por parte, como ya sabemos hacer nuestro control, ahora solo tenemos que hacer un una clase extienda de control Builder Public Class MyPortalBuilder : Inherits ControlBuilder Public Overrides Function GetChildControlType( _ ByVal tagName As String , _ ByVal attributes As IDictionary) As Type

Activando Eventos con controles desarrollados

Ya desarrollamos un pequeno control, pero ahora como hacemos para que este vaya al servidor, y ejecute una accion en este, es decir, cuando nosotro hacemos click sobre algo queremos que nuestro control vaya a realizar un metodo en el codebehind. Por ejemplo nosotros desarollamos en control llamado customerControl (button) y queremos darle la posibilidad a los desarrolladores que usen este control, de programar un evento, en este caso el evento click. manos a la obra. Namespace MyControl <ToolboxData( "<{0}:testControl runat=""server"" ID='testControl1'/>" )> _ Public Class testControl : Inherits Control Implements IPostBackEventHandler Public Event Click As EventHandler Protected Overridable Sub OnClick( ByVal e As EventArgs) RaiseEvent Click( Me , e) End Sub Public Sub RaisePostBackEvent( ByVal eventArgument As String ) Implements IPostBackEventHan

Desarrollando mi primer control en .NET

Primero, que todo esta es la primera vez que estoy tratando de desarrollar un control en .NEt, esto al parecer es muy util, ya que muchas veces los controles de .NEt no satisfacen nuestras necesidades. Esta es la clase de mi primera clase. Namespace MyControl <ToolboxData("<{0}:testControl runat=""server"" ID='testControl1'/>")> _ Public Class testControl : Inherits Control Protected Overrides Sub Render(ByVal output As HtmlTextWriter) output.Write(("<INPUT TYPE = ""text"" name = " & Me.UniqueID & " Value = '' />")) End Sub End Class End Namespace <ToolboxData("<{0}:testControl runat=""server"" ID='testControl1'/>")> Esta linea indica el texto que se escribira al momento que arrastremos desde el toolbox nuestro control hacia una pagina aspx. Public Class testControl : Inherits Control

.NET AJAX Control Toolkit problema con javascript (Sys is not defined)

Ultimante me encontre con un problema con esta libreria de .NET, pero el problema no era en desarrollo si no que en produccion, asi que era aun mas preocupante. El error es que al cliente le muestra un error de javascript, el cual dice que la variable "sys" no es definida. Causa: AjaxControlToolkit, ocupa recursos embedidos, es decir los controles contienen sus propios js, imagenes y css, lamentablemente estos no logran ser interpretados o procesados por servidor. Esta es la linea que agrega el control, para llamar a un javascript <script src="/WebSiteControl/WebResource.axd?d=Tm3Cyn9D......" type="text/javascript"></script> Solucion: como IIS, o el servidor de desarrollo, no logra interpretar la extensiones "axd"(esto es curioso, en mi caso estaban configurado para que los interpretara iisapi.dll) hay que agregar las siguientas lineas en el web.config. <httpHandlers> <remove verb="*" path="*.asmx" /&