Ir al contenido principal

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 IPostBackEventHandler.RaisePostBackEvent
OnClick(EventArgs.Empty)
End Sub

Protected Overrides Sub Render(ByVal output As HtmlTextWriter)
output.Write(("<INPUT TYPE = submit name = " & Me.UniqueID & " Value = 'Click Me' />"))
End Sub
End Class
End Namespace


Implements IPostBackEventHandler
nuestra clase de control tiene que ser implementada por esta clase, para que podamos capturar los eventos genrados en el cliente.

Public Event Click As EventHandler
con esta linea definimos el evento click de esta forma al hacer soble click sobre el objeto , nos aparerecera el metodo click, el encabezado de ese metodo seria algo asi.
Protected Sub testControl1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles testControl1.Click

Protected Overridable Sub OnClick(ByVal e As EventArgs)
Definimos el metodo un sub (llamado por algunos), ojo que este metodo tiene que ser sobre-escribible(Overridable). esta funcion recibe en E todos los argumentos.

RaiseEvent Click(Me, e)
llamamos internamente al evento click, y le pasamos nuestro objeto, es decir, ME o THIS. y los argumentos que nos llegaron como parametros.

Public Sub RaisePostBackEvent(ByVal eventArgument As String) Implements IPostBackEventHandler.RaisePostBackEvent
basicamente es un Sub, que es implementado por IPostBackEventHandler.RaisePostBackEvent

OnClick(EventArgs.Empty)
llamamos al sub con argumentos vacios.



En nuestro aspx, al momento de arrastrar el control se despliega lo siguiente:



en mi caso en el aspx.vb deje lo siguiente:
Protected Sub testControl1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles testControl1.Click
MsgBox("este es un click desde un testControl")
End Sub

Comentarios

Entradas populares de este blog

buscar columnas en todas las tablas Sql Server

me vi en la necesidad de buscar en todas las tablas de una base de datos por un comodin ya que no conocia bien el modelo de la base de datos.
aqui les dejo el sql.
SELECT sysobjects.name AS table_name, syscolumns.name AS column_name, systypes.name AS datatype, syscolumns.LENGTH AS LENGTH FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id INNER JOIN systypes ON syscolumns.xtype = systypes.xtype WHERE (sysobjects.xtype = 'U') and (UPPER(syscolumns.name) like upper('%myFieldName%')) ORDER BY sysobjects.name, syscolumns.colid


Solo tienen que cambiar donde dice "myFieldName"por el nombre de la columna que desean buscar.

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

"is not null" o "<> Null" en Sql Server

Trabajando con NHinbernate. mapeando unas clases, guardaba unos datos y hacia esta consulta para ver si estaba bien:


select * from table where campo <> NULL;


pero no me arrojaba los datos que queria y luego darle y darle vueltas hice esta consulta.

select * from table where campo is not NULL;


y ahi me di cuenta que el mapeo de Hibernet, y los cambios que habia hecho estaban bien. perdi toda una mañana de trabajo por esto :(.


Asi no es lo mismo "is not null" o "<> Null", por lo menos en Sql Server

Entonces ahora cada vez que quiera preguntar si un capo no es Null, voy a preguntar por "IS NOT NULL".

En caso de que quiera saber si un campo es null "IS NULL".




--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Aplicación y Aplicativo

Cada dia es mas comun escuchar de aplicativo para referirse a un programa informatico,  esto puede sonar bastante cool, pero la verdad es que no lo es. El termino "aplicativo"  no existe en informatica, la palabra correcta para referirse a un programa informatica es "Aplicacion".

Las definiciones segun la real academedia española son;


Aplicación (informatica): Programa preparado para una utilización específica, como el pago de nóminas, formación de un banco de términos léxicos, etc.Aplicativo: Que sirve para aplicar algo.
y ustedes van a seguir usando aplicativo en vez de aplicación
Links:
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicativo http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicaci%F3n


--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com