Ainda o controlo...Desta vez, eventos

Há um que teima em não disparar...

ESte é o código do Controlo:

Imports System
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
 
Public Class UniversalListing
    Inherits System.Web.UI.WebControls.GridView
 
#Region " Declaração de controlos "
 
    ' Declaração dos controlos que compõem a interface
    Protected Shared WithEvents txtSearchBox As New System.Web.UI.WebControls.TextBox
    Protected Shared WithEvents bttnSearchButton As New System.Web.UI.WebControls.Button
 
    'LiteralControl para escreve HTML simples para o UI do controlo
    Protected litSimpleHTML As New LiteralControl
 
#End Region
 
#Region " Propriedades e Campos "
 
#Region " Propriedade SearchButtonProperties "
 
    Private varSearchButtonProperties As New SearchButtonPropertiesCollection
    ''' <summary>
    ''' Propriedade que contém ou define as propriedades do botão de submissão da pesquisa
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property SearchButtonProperties() As SearchButtonPropertiesCollection
        Get
            Return varSearchButtonProperties
        End Get
        Set(ByVal value As SearchButtonPropertiesCollection)
            varSearchButtonProperties = value
        End Set
    End Property
 
#End Region
 
#Region " Propriedade SearchBoxProperties"
 
    Private varSearchBoxProperties As New SearchBoxPropertiesCollection
    ''' <summary>
    ''' Propriedade que contém ou define as propriedades da textbox de pesquisa
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property SearchBoxProperties() As SearchBoxPropertiesCollection
        Get
            Return varSearchBoxProperties
        End Get
        Set(ByVal value As SearchBoxPropertiesCollection)
            varSearchBoxProperties = value
        End Set
    End Property
 
#End Region
 
#End Region
 
#Region " Propriedades do botão de pesquisa "
    ''' <summary>
    ''' Classe que contem as propriedades do botão de confirmação da pesquisa
    ''' </summary>
    ''' <remarks></remarks>
    Public Class SearchButtonPropertiesCollection
 
        ''' <summary>
        ''' Propriedade Text do botão de pesquisa
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Text() As String
            Get
                Return bttnSearchButton.Text
            End Get
            Set(ByVal value As String)
                bttnSearchButton.Text = value
            End Set
        End Property
 
        ''' <summary>
        ''' Propriedade CssClass do botão de pesquisa
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property CssClass() As String
            Get
                Return bttnSearchButton.CssClass
            End Get
            Set(ByVal value As String)
                bttnSearchButton.CssClass = value
            End Set
        End Property
    End Class
 
#End Region
 
#Region " Propriedades da textbox de pesquisa "
 
    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    Public Class SearchBoxPropertiesCollection
 
        ''' <summary>
        ''' Propriedade Text da caixa de pesquisa
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Text() As String
            Get
                Return txtSearchBox.Text
            End Get
            Set(ByVal value As String)
                txtSearchBox.Text = value
            End Set
        End Property
        ''' <summary>
        ''' Propriedade CssClass da caixa de pesquisa
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property CssClass() As String
            Get
                Return txtSearchBox.CssClass
            End Get
            Set(ByVal value As String)
                txtSearchBox.CssClass = value
            End Set
        End Property
    End Class
 #End Region
 #Region " Eventos e Métodos "
 #Region " Construtor "
     ''' <summary>
    ''' Construtor. Inicializa o controlo e os seus objectos
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()
         Me.Controls.Add(txtSearchBox)
        Me.Controls.Add(bttnSearchButton)
        Me.Controls.Add(litSimpleHTML)
         ' Activar a feature de fazer o submit com a tecla Enter (evento OnKeyPress do JavaScript)
        txtSearchBox.Attributes.Add("OnKeyPress", "if (window.event.enterKey) form1.submit();")
     End Sub
 #End Region
 #Region " Método RenderControl "
     ''' <summary>
    ''' Método responsável pela renderização dos objectos de UI que compõem o controlo.
    ''' Neste caso primeiro faz o render da textbox de pesquisa, depois da barra de navegação AlfaNumérica
    ''' e finalmente faz o render da GridView
    ''' </summary>
    ''' <param name="writer">O System.Web.UI.HtmlTextWriter que vai escrever o HTML de output</param>
    ''' <remarks></remarks>
    ''' 
    Public Overrides Sub RenderControl(ByVal writer As System.Web.UI.HtmlTextWriter)
         txtSearchBox.RenderControl(writer)
        litSimpleHTML.Text = "&nbsp;"
        litSimpleHTML.RenderControl(writer)
        bttnSearchButton.RenderControl(writer)
        litSimpleHTML.Text = "<hr>"
        litSimpleHTML.RenderControl(writer)
        MyBase.RenderControl(writer)
     End Sub
 #End Region
 #End Region
     Public Shared Sub bttnSearchButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bttnSearchButton.Click
        txtSearchBox.Text = "Carregou"
        HttpContext.Current.Session("Texto") = "Carregou do Session"
    End Sub
 End Class
 Este é o Código da página q consome o controlo:
Imports System.Data
 
Partial Class _Default
Inherits System.Web.UI.Page
Protected WithEvents lstUniversal As New UniversalListing
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    form1.Controls.Add(lstUniversal)
    If Session("Texto") <> String.Empty Then
        lstUniversal.SearchBoxProperties.Text = Session("Texto")
    End If
End Sub
 
    Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadComplete
 
    Dim cmd As New SqlClient.SqlCommand
    Dim da As New SqlClient.SqlDataAdapter
    Dim con As New SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("ApolloSqlServer").ConnectionString)
    Dim dtDados As New Data.DataTable
 
    con.Open()
 
    cmd.Connection = con
    cmd.CommandText = "SELECT * FROM EntEnts"
 
    da.SelectCommand = cmd
    da.Fill(dtDados)
 
    lstUniversal.AllowSorting = True
    lstUniversal.AllowPaging = True
 
    lstUniversal.DataSource = dtDados
    lstUniversal.DataBind()
 
    con.Dispose()
    cmd.Dispose()
    dtDados.Dispose()
    da.Dispose()
End Sub
End Class
Published 30-5-2006 20:42 por Nuno Coimbra
Filed under:

Leave a Comment

(requerido) 
(requerido) 
(opcional)
(requerido) 
If you can't read this number refresh your screen
Enter the numbers above:  
Powered by Community Server (Commercial Edition), by Telligent Systems