Create reusable control that can be put on the toolbox

Last post 11-13-2009 1:27 AM by jkirkerx. 8 replies.

Sort Posts:

  • Create reusable control that can be put on the toolbox

    11-09-2009, 10:10 AM
    • Member
      129 point Member
    • gbeford
    • Member since 08-28-2006, 6:43 PM
    • Massachusetts
    • Posts 217

    I am tring to create a login in control that can be generated into a dll to be used on the toolbox. However I am having issues when I try to add a reference to the dll that the login control generated. Can someone tell me what I seem to be missing. I get the following error when I link to the dll "There are no components in LoginControl.dll that can be placed on the toolbox"

    <Assembly: WebResource("LoginControl.cancel.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginControl.change.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginControl.close.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginControl.downArrow.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginControl.find.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginControl.login.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginControl.next.jpg", "image/jpeg")>
    ''' <summary>
    ''' this control has a login control
    ''' a password recovery control
    ''' a change password control
    ''' a change username control
    ''' and a username recovery
    '''
    ''' </summary>
    ''' <remarks></remarks>
    '''
    Partial Public Class ucLogin
        Inherits System.Web.UI.UserControl

        'variables for login control  
        Private _destinationPageUrl As String
        Private _rememberMeSet As Boolean

        'Panel variables
        Private _loginPanelCss As String
        Private _signInLabel As String
        Private _loginPanelWidth As Integer

        'image button URL's variables
        Private _cancelBtnImageURL As String
        Private _signInBtnImageURL As String
        Private _nextBtnImageURL As String
        Private _findBtnImageURL As String
        Private _closeBtnImageURL As String
        Private _changeBtnImageURL As String

        Private _logoutDestinationURL As String

        ' css for controls
        Private _controlCSS As String
        Private _controlHeaderCss As String

        'email texts
        Private _chngPassEmailURL As String
        Private _passRecEmailURL As String

        ' to get to the controls on the page
        Dim _loginContainer As Object
        Dim _passRecUserContainer As Object
        Dim _passRecQuesContainer As Object
        Dim _passRecSuccContainer As Object
        Dim _chngPassContainer As Object
        Dim _chngPassSuccContainer As Object

        'password expire variables
        Private _passwordExpire As Integer = 0
        Private _membershipUser As MembershipUser = Membership.GetUser(HttpContext.Current.User.Identity.Name)
        Private _commentExpireDate As Date


    #Region "Public Variables"

        Public Property DestinationPageUrl() As String
            Get
                Return _destinationPageUrl
            End Get
            Set(ByVal value As String)
                _destinationPageUrl = value
            End Set
        End Property

        Public Property RememberMeSet() As Boolean
            Get
                Return _rememberMeSet
            End Get
            Set(ByVal value As Boolean)
                _rememberMeSet = value
            End Set
        End Property

        Public Property LoginPanelCss() As String
            Get
                Return _loginPanelCss
            End Get
            Set(ByVal value As String)
                _loginPanelCss = value
            End Set
        End Property

        Public Property SignInLabel() As String
            Get
                Return _signInLabel
            End Get
            Set(ByVal value As String)
                _signInLabel = value
            End Set
        End Property

        Public Property LoginPanelWidth() As Integer
            Get
                Return _loginPanelWidth
            End Get
            Set(ByVal value As Integer)
                _loginPanelWidth = value

            End Set
        End Property

        Public Property PasswordExpire() As Integer
            Get
                Return _passwordExpire
            End Get
            Set(ByVal value As Integer)
                _passwordExpire = value
            End Set
        End Property

        Public Property ChngPassEmailURL() As String
            Get
                Return _chngPassEmailURL
            End Get
            Set(ByVal value As String)
                _chngPassEmailURL = value
            End Set
        End Property

        Public Property PassRecEmailURL() As String
            Get
                Return _passRecEmailURL
            End Get
            Set(ByVal value As String)
                _passRecEmailURL = value
            End Set
        End Property

        Public Property LogoutDestinationURL() As String
            Get
                Return _logoutDestinationURL
            End Get
            Set(ByVal value As String)
                _logoutDestinationURL = value
            End Set
        End Property

        Public Property ControlCSS() As String
            Get
                Return _controlCSS
            End Get
            Set(ByVal value As String)
                _controlCSS = value
                If (_controlCSS Is String.Empty) Then
                   Dim includeTemplate As String = "<link rel='stylesheet' text='text/css' href='{0}' />"
                    Dim includeLocation As String = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                    lgLogin.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                    prPassRecovery.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                    chngPassword.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                    pnUsrRecovery.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                    pnChangeUser.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                End If
                lgLogin.CssClass = _controlCSS
                prPassRecovery.CssClass = _controlCSS
                chngPassword.CssClass = _controlCSS
                pnUsrRecovery.CssClass = _controlCSS
                pnChangeUser.CssClass = _controlCSS
            End Set
        End Property

        Public Property ControlHeaderCss() As String
            Get
                Return _controlHeaderCss
            End Get
            Set(ByVal value As String)
                _controlHeaderCss = value

                Dim _loginContainer As Object = lgLogin.Controls(0)
                Dim _passRecUserContainer = prPassRecovery.Controls(0)
                Dim _passRecQuesContainer = prPassRecovery.Controls(1)
                Dim _passRecSuccContainer = prPassRecovery.Controls(2)
                Dim _chngPassContainer As Object = chngPassword.Controls(0)
                Dim _chngPassSuccContainer As Object = chngPassword.Controls(1)
                Dim _lgCtrlHeader As Label = CType(_loginContainer.FindControl("lblLoginHeader"), Label)

                Dim _passRecUserCtrlHeader As Label = CType(_passRecUserContainer.FindControl("lblPassRecUserCtrlHeader"), Label)
                Dim _passRecQuestCtrlHeader As Label = CType(_passRecQuesContainer.FindControl("lblPassRecQuestHeader"), Label)
                Dim _passRecSuccCtrlHeader As Label = CType(_passRecSuccContainer.FindControl("lblPassRecSuccHeader"), Label)
                Dim _passChngCtrlHeader As Label = CType(_chngPassContainer.FindControl("lblChgPassCtrlHeader"), Label)
                Dim _passChngSuccCtrlHeader As Label = CType(_chngPassSuccContainer.FindControl("lblChgPassSuccCtrlHeader"), Label)
                Dim _usrRecoverCtrlHeader As Label = CType(vwUserRecovery.FindControl("lblUsrRecHeader"), Label)
                Dim _chgUserNameCtrlHeader As Label = CType(vwChangeUserName.FindControl("lblChgUserCtrlHeader"), Label)

                If (_controlHeaderCss Is String.Empty) Then
                    _lgCtrlHeader.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")                _passRecUserCtrlHeader.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                    _passRecQuestCtrlHeader.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                    _passRecSuccCtrlHeader.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), LoginControl.Login.css")              _passChngCtrlHeader.CssClass = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                    _usrRecoverContorl.CssClass =Page.ClientScript.GetWebResourceUrl(Me.GetType(), "LoginControl.Login.css")
                Else
                    _lgCtrlHeader.CssClass = _controlHeaderCss
                    _passRecUserCtrlHeader.CssClass = _controlHeaderCss
                    _passRecQuestCtrlHeader.CssClass = _controlHeaderCss
                    _passRecSuccCtrlHeader.CssClass = _controlHeaderCss
                    _passChngCtrlHeader.CssClass = _controlHeaderCss
                    _passChngSuccCtrlHeader.CssClass = _controlHeaderCss
                    _usrRecoverCtrlHeader.CssClass = _controlHeaderCss
                    _chgUserNameCtrlHeader.CssClass = _controlHeaderCss
                End If

            End Set
        End Property

        Public Property CancelBtnImageURL() As String
            Get
                Return _cancelBtnImageURL
            End Get
            Set(ByVal value As String)
                _cancelBtnImageURL = value

                _loginContainer = lgLogin.Controls(0)
                _chngPassContainer = chngPassword.Controls(0)
                Dim _loginCancelBtn As ImageButton = CType(_loginContainer.FindControl("btnLoginCancel"), ImageButton)
                Dim _chngPassCancelBtn As ImageButton = CType(_chngPassContainer.FindControl("chngPassCancelBtn"), ImageButton)
                Dim _userChangeNameCancelBtn As ImageButton = CType(vwChangeUserName.FindControl("chgUserNameCancelBtn"), ImageButton)

                If (_cancelBtnImageURL Is String.Empty) Then
                    _loginCancelBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "cancel.jpg")
                    _chngPassCancelBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "cancel.jpg")
                    _userChangeNameCancelBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "cancel.jpg")
                Else
                    _loginCancelBtn.ImageUrl = _cancelBtnImageURL
                    _chngPassCancelBtn.ImageUrl = _cancelBtnImageURL
                    _userChangeNameCancelBtn.ImageUrl = _cancelBtnImageURL
                End If
            End Set
        End Property

        Public Property SignInBtnImageURL() As String
            Get
                Return _signInBtnImageURL
            End Get
            Set(ByVal value As String)
                _signInBtnImageURL = value

                _loginContainer = lgLogin.Controls(0)
                Dim _loginBtn As ImageButton = CType(_loginContainer.FindControl("LoginButton"), ImageButton)

                If (_signInBtnImageURL Is String.Empty) Then
                    _loginBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "login.jpg")
                Else
                    _loginBtn.ImageUrl = _signInBtnImageURL
                End If
            End Set
        End Property

        Public Property NextBtnImageURL() As String
            Get
                Return _nextBtnImageURL
            End Get
            Set(ByVal value As String)
                _nextBtnImageURL = value

                _passRecUserContainer = prPassRecovery.Controls(0)
                _passRecQuesContainer = prPassRecovery.Controls(1)
                Dim _passRecUserBtn As ImageButton = CType(_passRecUserContainer.FindControl("PassRecUserNameBtn"), ImageButton)
                Dim _passRecQuestBtn As ImageButton = CType(_passRecQuesContainer.FindControl("PassRecQuestionBtn"), ImageButton)

                If (_nextBtnImageURL Is String.Empty) Then
                    _passRecUserBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "next.jpg")
                    _passRecQuestBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "next.jpg")
                Else
                    _passRecUserBtn.ImageUrl = _nextBtnImageURL
                    _passRecQuestBtn.ImageUrl = _nextBtnImageURL
                End If
            End Set
        End Property

        Public Property CloseBtnImageURL() As String
            Get
                Return _closeBtnImageURL
            End Get
            Set(ByVal value As String)
                _closeBtnImageURL = value

                _passRecSuccContainer = prPassRecovery.Controls(2)
                _chngPassSuccContainer = chngPassword.Controls(1)
                Dim _passRecCloseBtn As ImageButton = CType(_passRecSuccContainer.FindControl("PassRecCloseBtn"), ImageButton)
                Dim _chngPassCloseBtn As ImageButton = CType(_chngPassSuccContainer.FindControl("chgPasswordCloseBtn"), ImageButton)
                If (_closeBtnImageURL Is String.Empty) Then
                    _passRecCloseBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "close.jpg")
                    _chngPassCloseBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "close.jpg")
                Else
                    _passRecCloseBtn.ImageUrl = _closeBtnImageURL
                    _chngPassCloseBtn.ImageUrl = _closeBtnImageURL
                End If
            End Set
        End Property

        Public Property FindBtnImageURL() As String
            Get
                Return _findBtnImageURL
            End Get
            Set(ByVal value As String)
                _findBtnImageURL = value

                Dim _userRecovery As ImageButton = CType(vwUserRecovery.FindControl("UsrRecFindBtn"), ImageButton)

                If (_findBtnImageURL Is String.Empty) Then
                    _userRecovery.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "find.jpg")
                Else
                    _userRecovery.ImageUrl = _findBtnImageURL
                End If
            End Set
        End Property

        Public Property ChangeBtnImageURL() As String
            Get
                Return _changeBtnImageURL
            End Get
            Set(ByVal value As String)
                _changeBtnImageURL = value

                'need because change password is in a template
                Dim _chngPassContainer As Object = chngPassword.Controls(0)
                Dim _chngPassBtn As ImageButton = CType(_chngPassContainer.FindControl("chngPassBtn"), ImageButton)
                'to get to the change name image button
                Dim _userChangeNameBtn As ImageButton = CType(vwChangeUserName.FindControl("chgUserNameBtn"), ImageButton)

                If (_changeBtnImageURL Is String.Empty) Then
                    _chngPassBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "change.jpg")
                    _userChangeNameBtn.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "change.jpg")
                Else
                    _chngPassBtn.ImageUrl = _changeBtnImageURL
                    _userChangeNameBtn.ImageUrl = _changeBtnImageURL
                End If
            End Set
        End Property

    #End Region

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            setupForm()

            Dim cssResource As String = "LoginControl.Login.css"
            Dim cssURL As String = Page.ClientScript.GetWebResourceUrl(Me.GetType(), cssResource)
            Dim cssLink As HtmlLink = New HtmlLink()
            cssLink.Href = cssResource
            cssLink.Attributes.Add("rel", "stylesheet")
            Me.Page.Header.Controls.Add(cssLink)

            If (Page.IsPostBack) Then
                If Not HttpContext.Current.Request.IsAuthenticated Then
                End If
            End If

            If (Not Page.IsPostBack) Then
                If HttpContext.Current.Request.IsAuthenticated Then
                    mvLoginBtn_Status.SetActiveView(vwLogout)
                Else
                    mvLoginBtn_Status.SetActiveView(vwSignIn)
                End If
            End If

        End Sub

        Private Sub setupForm()

            ' to get to the controls on the page
            Dim _chngPassEmail As ChangePassword = CType(vwChangePassword.FindControl("chngPassword"), ChangePassword)
            Dim _passRecEmail As PasswordRecovery = CType(vwPassRecovery.FindControl("prPassRecovery"), PasswordRecovery)

            'set email URLs
            _chngPassEmail.MailDefinition.BodyFileName = _chngPassEmailURL
            _passRecEmail.MailDefinition.BodyFileName = _passRecEmailURL
            lgStatus.LogoutPageUrl = _logoutDestinationURL
            ' set panel properties
            lblSignIn.Text = _signInLabel
            pnSignIn.CssClass = _loginPanelCss

            ' set the Login control properties
            lgLogin.DestinationPageUrl = _destinationPageUrl
            lgLogin.RememberMeSet = _rememberMeSet

        End Sub
        ''' <summary>
        ''' this method checks to see if the users password has expired (Membership.Comment).
        ''' this will force the user to change their password
        ''' </summary>
        Private Sub lgLogin_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles lgLogin.Load

            ' verify if password is expired
            If HttpContext.Current.Request.IsAuthenticated Then
                If Not (_membershipUser.Comment = String.Empty) Then
                    If Date.TryParse(_membershipUser.Comment, _commentExpireDate) Then
                        If _commentExpireDate < Date.Today Then
                            mvLogin_PassRecovery.SetActiveView(vwChangePassword)
                            pnLoginControls.Style("display") = "inline"
                        End If
                    End If
                End If
            End If

        End Sub

        Protected Sub lbPassRecovery_Click(ByVal sender As Object, ByVal e As EventArgs)
            'set view that has the password recovery control
            mvLogin_PassRecovery.SetActiveView(vwPassRecovery)
            pnLoginControls.Style("display") = "inline"
        End Sub

        Protected Sub SubmitButton_Click(ByVal sender As Object, ByVal e As EventArgs)
            'set view that has the password recovery control
            mvLogin_PassRecovery.SetActiveView(vwPassRecovery)
            pnLoginControls.Style("display") = "inline"
        End Sub

        Protected Sub lbChangePass_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lbChangePass.Click
            'set view that has the change password control
            mvLogin_PassRecovery.SetActiveView(vwChangePassword)
            pnLoginControls.Style("display") = "inline"

        End Sub

        Protected Sub lbChangeUser_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lbChangeUser.Click
            'set user in the change user table
            lblOriginalUser.Text = "&nbsp;" + HttpContext.Current.User.Identity.Name

            'set view that has the change user table
            mvLogin_PassRecovery.SetActiveView(vwChangeUserName)
            pnLoginControls.Style("display") = "inline"

        End Sub

        Protected Sub lbUserNameRecovery_Click(ByVal sender As Object, ByVal e As EventArgs)
            'set view that has the user recovery table
            mvLogin_PassRecovery.SetActiveView(vwUserRecovery)
            pnLoginControls.Style("display") = "inline"
        End Sub

        Private Sub prPassRecovery_SendingMail(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles prPassRecovery.SendingMail
            _membershipUser = Membership.GetUser(prPassRecovery.UserName)

            ' logic to force user to change password
            _membershipUser.Comment = DateAdd(DateInterval.Day, -1, Date.Today)
            Membership.UpdateUser(_membershipUser)

        End Sub

        ''' <summary>
        '''  this method checks the following:
        '''  Is Membership comment empty(_commentExpireDate)
        '''  Is there a property for expired password
        '''  if Membership comment is not empty check to see if we have a property for expire password
        '''  if so set the new password expiration date
        '''  if no expired password property set the comment to null
        ''' </summary>
        Private Sub ChangePassword1_ContinueButtonClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles chngPassword.ContinueButtonClick

            If Not (_membershipUser.Comment = String.Empty) Then
                If Not _passwordExpire = 0 Then
                    If DateDiff("Day", _commentExpireDate, Date.Today) < 0 Then
                        _membershipUser.Comment = DateAdd(DateInterval.Day, _passwordExpire, Date.Today)
                        Membership.UpdateUser(_membershipUser)
                    End If
                Else
                    _membershipUser.Comment = String.Empty
                    Membership.UpdateUser(_membershipUser)
                End If
            End If
            ' close panel
            pnLoginControls.Style("display") = "none"

        End Sub

        Private Sub btSignIn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btSignIn.Click
            'set view that has the login control
            mvLogin_PassRecovery.SetActiveView(vwLogin)
            pnLoginControls.Style("display") = "inline"

        End Sub

        Protected Sub cancelLoginButton(ByVal sender As Object, ByVal e As System.EventArgs)
            pnLoginControls.Style("display") = "none"
        End Sub

        Protected Sub ClosePasswordSent(ByVal sender As Object, ByVal e As System.EventArgs)
            pnLoginControls.Style("display") = "none"
        End Sub

        Private Sub chgUserNameCancelBtn_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles chgUserNameCancelBtn.Click
            pnLoginControls.Style("display") = "none"
        End Sub

        Private Sub chgUserNameBtn_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles chgUserNameBtn.Click
            'TODO*  logic to change the username and send email to them that it changed
        End Sub

        Private Sub usrRecFindBtn_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles usrRecFindBtn.Click
            'TODO*  logic to find username and email them their username
            ' also when name is found place name into the login box
        End Sub

        Protected Sub CloseChangePassword(ByVal sender As Object, ByVal e As System.EventArgs)
            pnLoginControls.Style("display") = "none"
        End Sub

     End Class

     

     

    <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ucLogin.ascx.vb" Inherits="ucLogin" %>


    <asp:MultiView ID="mvLoginBtn_Status" runat="server">
        <asp:View ID="vwSignIn" runat="server">
            <asp:Panel ID="pnSignIn" runat="server">
                <div>
                    <asp:Label ID="lblSignIn" runat="server" Text=""></asp:Label>
                    <asp:LinkButton ID="btSignIn" runat="server">Sign In</asp:LinkButton>
                    <asp:Image ID="imgArrow" runat="server" ImageUrl="downArrow.jpg" ToolTip="Sign In" />              
                </div>
            </asp:Panel>
        </asp:View>
        <asp:View ID="vwLogout" runat="server">
            <asp:LoginStatus ID="lgStatus" runat="server" />
            <asp:LoginName ID="logName" runat="server" />
            <br />
            <asp:LinkButton ID="lbChangePass" runat="server" Font-Size="X-Small" Font-Underline="False"
                ForeColor="Red">Change Password</asp:LinkButton>
            <br />
            <asp:LinkButton ID="lbChangeUser" runat="server" Font-Size="X-Small" Font-Underline="False"
                ForeColor="#FF3300">Change Username</asp:LinkButton>
        </asp:View>
    </asp:MultiView>
    <asp:Panel ID="pnLoginControls" runat="server" Style="display: none;">
        <asp:MultiView ID="mvLogin_PassRecovery" runat="server" ActiveViewIndex="0">
            <%--  -------- Login -----------  --%>
            <asp:View ID="vwLogin" runat="server">
                <asp:Login ID="lgLogin" runat="server" VisibleWhenLoggedIn="False" CssClass="loginCtrlHeader">
                    <LayoutTemplate>
                        <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;"
                            width="100%">
                            <tr>
                                <td align="center" colspan="2" id="lgCtrlHeader" runat="server">
                                    <asp:Label ID="lblLoginHeader" runat="server" Text="Log In" Width="100%"></asp:Label>
                                </td>
                            </tr>
                            <tr >
                                <td align="left" style="padding-left: 5px;">
                                    <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName" Font-Size="XX-Small">User Name:</asp:Label>
                                </td>
                                <td style="padding-top:5px;">
                                    <asp:TextBox ID="UserName" runat="server" Width="150px"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
                                        ErrorMessage="User Name is required." ToolTip="User Name is required." ValidationGroup="ctl00$lgLogin">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr >
                                <td align="left" style="padding-left: 5px;">
                                    <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password" Font-Size="XX-Small">Password:</asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox ID="Password" runat="server" TextMode="Password" Width="150px"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
                                        ErrorMessage="Password is required." ToolTip="Password is required." ValidationGroup="ctl00$lgLogin">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr style="padding-left: 5px;">
                                <td colspan="2">
                                    <asp:CheckBox ID="RememberMe" runat="server" Font-Size="XX-Small" Text="Remember me" />
                                </td>
                            </tr>
                            <tr>
                                <td align="center" colspan="2" style="color: Red;">
                                    <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
                                </td>
                            </tr>
                            <tr align="center">
                                <td colspan="2">
                                    <asp:ImageButton ID="LoginButton" runat="server" CommandName="Login" ValidationGroup="ctl00$lgLogin" />
                                    &nbsp; &nbsp;
                                    <asp:ImageButton ID="btnLoginCancel" runat="server" OnClick="cancelLoginButton" />
                                </td>
                            </tr>
                            <tr >
                                <td colspan="2" style="padding-left: 5px; padding-top:5px;">
                                    <asp:LinkButton ID="lbPassRecovery" runat="server" Font-Size="XX-Small" OnClick="lbPassRecovery_Click">Forget your password?</asp:LinkButton>
                                </td>
                            </tr>
                            <tr >
                                <td colspan="2" style="padding-left: 5px; padding-bottom: 10px;">
                                    <asp:LinkButton ID="LinkButton2" runat="server" Font-Size="XX-Small" OnClick="lbUserNameRecovery_Click">Forget your username?</asp:LinkButton>
                                </td>
                            </tr>
                        </table>
                    </LayoutTemplate>
                </asp:Login>
            </asp:View>
            <%--  -------- Password Recovery -----------  --%>
            <asp:View ID="vwPassRecovery" runat="server">
                <asp:PasswordRecovery ID="prPassRecovery" runat="server" CssClass="loginCtrlHeader">
                    <MailDefinition BodyFileName="~/EmailTemplates/PasswordRecovery.txt">
                    </MailDefinition>
                    <UserNameTemplate>
                        <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;"
                            width="100%">
                            <tr>
                                <td align="center" colspan="2">
                                    <asp:Label ID="lblPassRecUserCtrlHeader" runat="server" Text="Forgot Your Password?"
                                        Width="100%" CssClass="loginCtrlHeader"></asp:Label>
                                </td>
                            </tr>
                            <tr>
                                <td align="center" colspan="2" style="height: 30px; padding-left: 5px; padding-right: 5px;">
                                    Enter your User Name to receive your password.
                                </td>
                            </tr>
                            <tr >
                                <td align="left" valign="top" style="padding-left: 5px;">
                                    <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User
                                            Name:</asp:Label>
                                </td>
                                <td valign="top">
                                    <asp:TextBox ID="UserName" runat="server"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
                                        ErrorMessage="User Name is required." ToolTip="User Name is required." ValidationGroup="ctl00$prPassRecovery">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td align="center" colspan="2" style="color: Red;">
                                    <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
                                </td>
                            </tr>
                            <tr>
                                <td align="right" colspan="2" style="padding-right: 5px; padding-bottom:5px;">
                                    <asp:ImageButton ID="PassRecUserNameBtn" runat="server" CommandName="Submit" OnClick="SubmitButton_Click"
                                        ValidationGroup="ctl00$prPassRecovery" />
                                </td>
                            </tr>
                        </table>
                    </UserNameTemplate>
                    <QuestionTemplate>
                        <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;"
                            width="100%">
                            <tr>
                                <td align="center" colspan="2">
                                    <asp:Label ID="lblPassRecQuestHeader" runat="server" CssClass="loginCtrlHeader" Text="Security Question" CssClass="loginCtrlHeader"
                                        Width="100%"></asp:Label>
                                </td>
                            </tr>
                            <%-- <tr>
                                            <td align="left" colspan="2">
                                                Answer the following question to receive your password.<br /><br />
                                            </td>
                                        </tr>--%>
                            <%--  <tr>
                                            <td align="right">
                                                User Name:
                                            </td>
                                            <td>
                                                <asp:Literal ID="UserName" runat="server"></asp:Literal>
                                            </td>
                                        </tr>--%>
                            <tr >
                                <td align="left" valign="top" style="padding-top: 5px; padding-left: 5px;">
                                    Question:
                                </td>
                                <td valign="top">
                                    <asp:Literal ID="Question" runat="server"></asp:Literal>
                                </td>
                            </tr>
                            <tr >
                                <td align="left" style="padding-top: 10px; padding-left: 5px;">
                                    <asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer">Answer:</asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox ID="Answer" runat="server"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="AnswerRequired" runat="server" ControlToValidate="Answer"
                                        ErrorMessage="Answer is required." ToolTip="Answer is required." ValidationGroup="PasswordRecovery1">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td align="left" colspan="2" style="color: red">
                                    <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
                                </td>
                            </tr>
                            <tr>
                                <td align="right" colspan="2" style="padding-right: 5px; padding-bottom:5px;">
                                    <asp:ImageButton ID="PassRecQuestionBtn" runat="server" CommandName="Submit" ValidationGroup="PasswordRecovery1" />
                                </td>
                            </tr>
                        </table>
                    </QuestionTemplate>
                    <SuccessTemplate>
                        <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;"
                            width="100%">
                            <tr>
                                <td align="center" colspan="2">
                                    <asp:Label ID="lblPassRecSuccHeader" CssClass="loginCtrlHeader" runat="server" Text="Thank You" CssClass="loginCtrlHeader"
                                        Width="100%"></asp:Label>
                                </td>
                            </tr>
                            <tr >
                                <td align="left" style="height: 30px" style="padding-left: 5px;">
                                    Thank you, Your password has been sent.
                                </td>
                            </tr>
                            <tr>
                                <td align="right" style="padding-right: 5px; padding-bottom:15px;">
                                    <asp:ImageButton ID="PassRecCloseBtn" runat="server" OnClick="ClosePasswordSent"
                                        ValidationGroup="PasswordRecovery1" />
                                </td>
                            </tr>
                        </table>
                    </SuccessTemplate>
                </asp:PasswordRecovery>
            </asp:View>
            <%--  -------- Change Password -----------  --%>
            <asp:View ID="vwChangePassword" runat="server">
                <asp:ChangePassword ID="chngPassword" runat="server" CssClass="loginCtrlHeader">
                    <ChangePasswordTemplate>
                        <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;"
                            width="100%">
                            <tr>
                                <td align="center" colspan="2">
                                    <asp:Label ID="lblChgPassCtrlHeader" runat="server" CssClass="loginCtrlHeader" Text="Change Password" Width="100%"></asp:Label>
                                </td>
                            </tr>
                            <tr >
                                <td align="left" style="padding-top: 5px; padding-left: 5px;">
                                    <asp:Label ID="CurrentPasswordLabel" runat="server" AssociatedControlID="CurrentPassword">Password:</asp:Label>
                                </td>
                                <td style="padding-top:5px;">
                                    <asp:TextBox ID="CurrentPassword" runat="server" TextMode="Password" Style="margin-left: 0px"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="CurrentPasswordRequired" runat="server" ControlToValidate="CurrentPassword"
                                        ErrorMessage="Password is required." ToolTip="Password is required." ValidationGroup="ChangePassword1">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr >
                                <td align="left" style="padding-top: 5px; padding-left: 5px;">
                                    <asp:Label ID="NewPasswordLabel" runat="server" AssociatedControlID="NewPassword">New Password:</asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox ID="NewPassword" runat="server" TextMode="Password"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="NewPasswordRequired" runat="server" ControlToValidate="NewPassword"
                                        ErrorMessage="New Password is required." ToolTip="New Password is required."
                                        ValidationGroup="ChangePassword1">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr >
                                <td align="left" style="padding-top: 5px; padding-left: 5px;">
                                    <asp:Label ID="ConfirmNewPasswordLabel" runat="server" AssociatedControlID="ConfirmNewPassword">Confirm Password:</asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox ID="ConfirmNewPassword" runat="server" TextMode="Password"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="ConfirmNewPasswordRequired" runat="server" ControlToValidate="ConfirmNewPassword"
                                        ErrorMessage="Confirm New Password is required." ToolTip="Confirm New Password is required."
                                        ValidationGroup="ChangePassword1">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td align="center" colspan="2">
                                    <asp:CompareValidator ID="NewPasswordCompare" runat="server" ControlToCompare="NewPassword"
                                        ControlToValidate="ConfirmNewPassword" Display="Dynamic" ErrorMessage="The Confirm New Password must match the New Password entry."
                                        ValidationGroup="ChangePassword1"></asp:CompareValidator>
                                </td>
                            </tr>
                            <tr>
                                <td align="center" colspan="2" style="color: Red;">
                                    <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
                                </td>
                            </tr>
                            <tr>
                                <td align="right" colspan="2" style="padding-right: 5px; padding-bottom:5px; padding-top:5px;">
                                    <asp:ImageButton ID="chngPassBtn" runat="server" CommandName="ChangePassword" ValidationGroup="ChangePassword1" />
                                    &nbsp;&nbsp;
                                    <asp:ImageButton ID="chngPassCancelBtn" runat="server" CausesValidation="False" CommandName="Cancel" />
                                </td>
                            </tr>
                        </table>
                    </ChangePasswordTemplate>
                    <SuccessTemplate>
                        <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;" width="100%" >
                            <tr>
                                <td align="center" colspan="2">
                                    <asp:Label ID="lblChgPassSuccCtrlHeader" CssClass="loginCtrlHeader" runat="server" Text="Thank You" Width="100%"></asp:Label>
                                </td>
                            </tr>
                            <tr >
                                <td align="left" style="height: 30px" style="padding-left: 5px;">
                                    Your password has been changed!
                                </td>
                            </tr>
                            <tr>
                                <td align="right" style="padding-right: 5px; padding-bottom:15px;">
                                    <asp:ImageButton ID="chgPasswordCloseBtn" runat="server" OnClick="CloseChangePassword" />
                                </td>
                            </tr>
                        </table>
                    </SuccessTemplate>
                </asp:ChangePassword>
                <%--  -------- Change User Name -----------  --%>
            </asp:View>
            <asp:View ID="vwChangeUserName" runat="server">
            <asp:Panel ID="pnChangeUser" runat="server" CssClass="loginCtrlHeader">
                <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;" width="100%">
                    <tr>
                        <td align="center" colspan="2">
                            <asp:Label ID="lblChgUserCtrlHeader" CssClass="loginCtrlHeader" runat="server" Text="Change Your Username" Width="100%"></asp:Label>
                        </td>
                    </tr>
                    <tr >
                        <td align="left" style="padding-top: 5px; padding-left: 5px; width: 175px;">
                            Original User:
                        </td>
                        <td style="width: 200px;">
                            <asp:Label ID="lblOriginalUser" runat="server" Text=""></asp:Label>
                        </td>
                    </tr>
                    <tr >
                        <td align="left" style="padding-top: 5px; padding-left: 5px; width: 175px;" valign="top">
                            <asp:Label ID="lblNewUsername" runat="server">New Username:</asp:Label>
                        </td>
                        <td>
                            <asp:TextBox ID="txtNewUsername" runat="server" Font-Size="X-Small" Width="150px"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="rvCurrentUsernameRequired" runat="server" ControlToValidate="txtNewUsername"
                                ErrorMessage="New Username is required." ToolTip="New Username is required.">*</asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr >
                        <td align="left" valign="top" style="width: 175px; padding-top: 5px; padding-left: 5px;">
                            <asp:Label ID="lblConfirmNewUsername" runat="server">Confirm Username:</asp:Label>
                        </td>
                        <td>
                            <asp:TextBox ID="txtConfirmNewUsername" runat="server" Font-Size="X-Small" Width="150px"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="rvNewUsername" runat="server" ControlToValidate="txtConfirmNewUsername"
                                ErrorMessage="Confirm New Username is required." ToolTip="Confirm New Username is required.">*</asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td align="center" colspan="2" style="color: Red;">
                            <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
                        </td>
                    </tr>
                    <tr>
                        <td align="right" colspan="2">
                            <asp:ImageButton ID="chgUserNameBtn" runat="server" />
                            &nbsp;&nbsp;
                            <asp:ImageButton ID="chgUserNameCancelBtn" CausesValidation="False" runat="server" />
                        </td>
                    </tr>
                </table>
                </asp:Panel>
            </asp:View>
            <%--  -------- Recover User Name -----------  --%>
            <asp:View ID="vwUserRecovery" runat="server">
                <asp:Panel ID="pnUsrRecovery" runat="server" CssClass="loginCtrlHeader">
              
                <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse;"
                    width="100%">
                    <tr>
                        <td align="center" colspan="2" >
                            <asp:Label ID="lblUsrRecHeader" CssClass="loginCtrlHeader" runat="server" Text="Username Recovery" Width="100%"></asp:Label>
                        </td>
                    </tr>
                    <tr >
                        <td align="left" style="padding-left: 5px;">
                            <asp:Label ID="lblFname" runat="server" Text="First Name"></asp:Label>
                        </td>
                        <td style="padding-top:5px;">
                            <asp:TextBox ID="txtFname" runat="server"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td align="left" style="padding-left: 5px;">
                            <asp:Label ID="lblLname" runat="server" Text="Last Name"></asp:Label>
                        </td>
                        <td>
                            <asp:TextBox ID="txtLname" runat="server"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td align="left" style="padding-left: 5px;">
                            <asp:Label ID="lblDOB" runat="server" Text="Date of Birth"></asp:Label>
                        </td>
                        <td>
                            <asp:TextBox ID="txtDOB" runat="server"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td align="right" colspan="2" style="padding-right: 5px; padding-bottom:5px; padding-top:5px;">
                            <asp:ImageButton ID="usrRecFindBtn" runat="server" />
                        </td>
                    </tr>
                    </table>
                     </asp:Panel>
            </asp:View>
        </asp:MultiView>
    </asp:Panel>

    Thank you so much for all the help :)

    Gina
  • Re: Create reusable control that can be put on the toolbox

    11-09-2009, 12:43 PM
    • All-Star
      36,316 point All-Star
    • rtpHarry
    • Member since 10-01-2006, 12:51 PM
    • Lincoln, England
    • Posts 5,847

    I dont know if this is required but you havent got [Toolboxdata] attribute...



    Looking at this example document its the only difference I can see at a glance...?

  • Re: Create reusable control that can be put on the toolbox

    11-09-2009, 2:50 PM
    • Member
      129 point Member
    • gbeford
    • Member since 08-28-2006, 6:43 PM
    • Massachusetts
    • Posts 217

    Ahh you were right... I added this to my code and was able to get the control on the toolbox... 

    <DefaultProperty("Text"), ToolboxData("<{0}:CEloginControl runat=server></{0}:CEloginControl>")> _

    however, when i drag it off the toolbar i get the following error " Unknown server tag 'cc1:ECloginControl"

    I have been searching and I am not sure why this is happening ? might you have any thoughts ?

     

    Thank you so much for all the help :)

    Gina
  • Re: Create reusable control that can be put on the toolbox

    11-10-2009, 5:30 AM
    • All-Star
      36,316 point All-Star
    • rtpHarry
    • Member since 10-01-2006, 12:51 PM
    • Lincoln, England
    • Posts 5,847

    I guess you probably have to set some attribute to tie CEloginControl to the actual class name ucLogin.

    As an experiment try changing the line to:

    <DefaultProperty("Text"), ToolboxData("<{0}:ucLogin runat=server></{0}:ucLogin>")> _

  • Re: Create reusable control that can be put on the toolbox

    11-10-2009, 11:41 AM
    • Member
      129 point Member
    • gbeford
    • Member since 08-28-2006, 6:43 PM
    • Massachusetts
    • Posts 217

    I tried what you suggested and I still get the same error.  it seems like i must be missing something in my control that it doesnt seem to be registering things right ? I am at a total loss as to what i am missing :( any other suggestions ?  is there an assembly that I need to add ?

    these are to embed my images

    <Assembly: WebResource("LoginServerControl.cancel.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginServerControl.change.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginServerControl.close.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginServerControl.downArrow.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginServerControl.find.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginServerControl.login.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginServerControl.next.jpg", "image/jpeg")>
    <Assembly: WebResource("LoginServerControl.Login.css", "text/css")>

    <DefaultProperty("Text"), ToolboxData("<{0}:ucLogin runat=server></{0}:ucLogin>")> _

    which you suggested..

     

    Thank you so much for all the help :)

    Gina
  • Re: Create reusable control that can be put on the toolbox

    11-11-2009, 1:20 AM
    Answer

    Hi,

    Please inherit the class from Control instead of UserControl 

    Sincerely,
    Allen Chen
    Microsoft Online Community Support

    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
  • Re: Create reusable control that can be put on the toolbox

    11-11-2009, 8:43 AM
    • Member
      129 point Member
    • gbeford
    • Member since 08-28-2006, 6:43 PM
    • Massachusetts
    • Posts 217

    OMG that was a silly mistake... Thank you soooooooooo much :) 

    Thank you so much for all the help :)

    Gina
  • Re: Create reusable control that can be put on the toolbox

    11-11-2009, 9:39 AM
    • Member
      129 point Member
    • gbeford
    • Member since 08-28-2006, 6:43 PM
    • Massachusetts
    • Posts 217

    I have one other question... I can see the properties i have set in the properties window set everything that needs to be set.. however when I run it, it seems like none of my controls are rendering... they all come up as "nothing" so i get object not set to a reference.  Is there something special that I needed to do that I missed ?  

    Thank you so much for all the help :)

    Gina
  • Re: Create reusable control that can be put on the toolbox

    11-13-2009, 1:27 AM
    Answer
    • Participant
      1,894 point Participant
    • jkirkerx
    • Member since 12-07-2007, 2:52 AM
    • Huntington Beach CA
    • Posts 443

    x = [DestinationPageUrl] to make properties show

    Here's a small sample control, it's a solid format for the type of control your trying to write

    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Text
    Imports System.Web
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    
    
    <DefaultProperty("Text"), ToolboxData("<{0}:Display_PageFooter runat=server></{0}:Display_PageFooter>")> _
    Public Class Display_PageFooter
        Inherits WebControl
    
    	Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
    
    		If Not Me.Context Is Nothing Then
    			RenderContents(writer)
    		Else
    			RenderDesignMode(writer)
    		End If
    
    	End Sub
    	Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
    		MyBase.OnInit(e)
    
    		Controls.Clear()
    
    		Dim cs As ClientScriptManager = Me.Page.ClientScript
    		Dim rsType As Type = Me.GetType()
    
    		Dim Comment As LiteralControl
    		Comment = New LiteralControl
    		Comment.Text = "<!-- PageFooter Control V1.4.2 for ASP.NET -->" & vbCrLf
    		Controls.Add(Comment)
    
    		Dim table As Table
    		table = New Table
    		With table
    			.CellPadding = 0
    			.CellSpacing = 0
    			.Width = 960
    			.Style.Add(HtmlTextWriterStyle.Width, "960px")
    		End With
    		Controls.Add(table)
    
    		Dim tr As TableRow
    		tr = New TableRow
    		With tr
    		End With
    		table.Controls.Add(tr)
    
    		Dim td As TableCell
    		td = New TableCell
    		With td
    			.Height = 30
    			.Style.Add(HtmlTextWriterStyle.Height, "30px")
    			.Style.Add(HtmlTextWriterStyle.FontFamily, "Tahoma, Verdana, Arial, Helvetica, sans-serif")
    			.Style.Add(HtmlTextWriterStyle.FontSize, "12px")
    			.Style.Add(HtmlTextWriterStyle.Color, "#000000")
    			.Style.Add(HtmlTextWriterStyle.BackgroundImage, cs.GetWebResourceUrl(rsType, "redCopper.ice5.admin.pr_bgDkGray_1x30.gif").ToString)
    			.Style.Add(HtmlTextWriterStyle.FontWeight, "normal")
    			.Style.Add(HtmlTextWriterStyle.TextAlign, "center")
    			.VerticalAlign = VerticalAlign.Middle
    		End With
    		tr.Controls.Add(td)
    
    		Dim lbl_CopyRight As Label
    		lbl_CopyRight = New Label
    		With lbl_CopyRight
    			.Text = "Copyright (2005-2009)"
    		End With
    		td.Controls.Add(lbl_CopyRight)
    
    	End Sub
    	Private Sub RenderDesignMode(ByVal writer As HtmlTextWriter)
    
    		Controls.Clear()
    
    		Dim cs As ClientScriptManager = Me.Page.ClientScript
    		Dim rsType As Type = Me.GetType()
    
    		Dim Comment As LiteralControl
    		Comment = New LiteralControl
    		Comment.Text = "<!--PageFooter Control V1.4.2 for ASP.NET -->" & vbCrLf
    		Controls.Add(Comment)
    
    		Dim table As Table
    		table = New Table
    		With table
    			.CellPadding = 0
    			.CellSpacing = 0
    			.Width = 960
    			.Style.Add(HtmlTextWriterStyle.Width, "960px")
    		End With
    		Controls.Add(table)
    
    		Dim tr As TableRow
    		tr = New TableRow
    		With tr
    		End With
    		table.Controls.Add(tr)
    
    		Dim td As TableCell
    		td = New TableCell
    		With td
    			.Height = 30
    			.Style.Add(HtmlTextWriterStyle.Height, "30px")
    			.Style.Add(HtmlTextWriterStyle.FontFamily, "Tahoma, Verdana, Arial, Helvetica, sans-serif")
    			.Style.Add(HtmlTextWriterStyle.FontSize, "12px")
    			.Style.Add(HtmlTextWriterStyle.Color, "#000000")
    			.Style.Add(HtmlTextWriterStyle.BackgroundImage, cs.GetWebResourceUrl(rsType, "redCopper.ice5.admin.pr_bgDkGray_1x30.gif").ToString)
    			.Style.Add(HtmlTextWriterStyle.FontWeight, "normal")
    			.Style.Add(HtmlTextWriterStyle.TextAlign, "center")
    			.VerticalAlign = VerticalAlign.Middle
    		End With
    		tr.Controls.Add(td)
    
    		Dim lbl_CopyRight As Label
    		lbl_CopyRight = New Label
    		With lbl_CopyRight
    			.Text = "Copyright (2005-2009)"
    		End With
    		td.Controls.Add(lbl_CopyRight)
    
    		table.RenderControl(writer)
    
    
    	End Sub
    	<Bindable(True)> _
    	<Category("Appearance")> _
    	<DefaultValue("")> _
    	<Localizable(True)> Property CssStyle_Text() As String
    		Get
    			Dim s As String = CStr(ViewState("CssStyle_Text"))
    			If s Is Nothing Then
    				Return String.Empty
    			Else
    				Return s
    			End If
    		End Get
    
    		Set(ByVal Value As String)
    			ViewState("CssStyle_Text") = Value
    		End Set
    	End Property
    
    
    End Class
    


    Imports System
    Imports System.Collections
    Imports System.Collections.Specialized
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Text
    Imports System.Web
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Drawing.Design
    Imports System.Web.UI.Design
    Imports AjaxControlToolkit
    Imports System.Security.Cryptography
    Imports System.Xml

    <DefaultProperty("Text"), ToolboxData("<{0}:Display_LogoutScreen runat=server></{0}:Display_LogoutScreen>")> _
    Public Class Display_LogoutScreen
        Inherits WebControl
        Implements IPostBackDataHandler

        Public Event TextChanged As EventHandler
        Public Event ButtonClick As EventHandler

        Private Panel As Panel
        Private UpdatePanel_LogoutScreen As UpdatePanel
        Private UpdateProgress_LogoutScreen As UpdateProgress

        Private lblStatus As Label

        Public Overridable Function LoadPostData(ByVal postDataKey As String, ByVal values As NameValueCollection) As Boolean Implements IPostBackDataHandler.LoadPostData

            Dim presentValue As String = Text
            Dim postedValue As String = values(postDataKey)

            If Not presentValue.Equals(postedValue) Then
                Text = postedValue
                Return True
            End If

            Return False

        End Function
        Public Overridable Sub RaisePostDataChangedEvent() Implements IPostBackDataHandler.RaisePostDataChangedEvent

            OnTextChanged(EventArgs.Empty)

        End Sub
        Protected Overridable Sub OnTextChanged(ByVal e As EventArgs)

            RaiseEvent TextChanged(Me, e)

        End Sub
        Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)

            If Not Me.Context Is Nothing Then
                RenderContents(writer)
            Else
                RenderDesignMode(writer)
            End If

        End Sub
        Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
            MyBase.OnInit(e)

            Controls.Clear()

            Dim cs As ClientScriptManager = Me.Page.ClientScript
            Dim rsType As Type = Me.GetType()

            Dim Comment As LiteralControl
            Comment = New LiteralControl
            Comment.Text = "<!-- Internet Commerce Engine 5 Display_LogoutScreen Control V1.4.2 for ASP.NET -->" & vbCrLf
            Controls.Add(Comment)

            'Register the javascript
            If (Not cs.IsClientScriptIncludeRegistered(rsType, "LogoutScreen")) Then
                'cs.RegisterClientScriptInclude("LogoutScreen", cs.GetWebResourceUrl(rsType, "redCopper.ice5.admin.selectPayment.js"))
            End If

            Panel = New Panel
            With Panel
                .Attributes.Add("id", [ID] & "_LogoutScreen")
                .Visible = [Visible]
                .Style.Add(HtmlTextWriterStyle.Width, [Width].ToString)
                .Style.Add(HtmlTextWriterStyle.TextAlign, "center")
                .Style.Add(HtmlTextWriterStyle.Margin, "0px auto")
            End With
            Controls.Add(Panel)

            UpdatePanel_LogoutScreen = New UpdatePanel
            With UpdatePanel_LogoutScreen
                .ID = [ID] & "_UpdatePanel_LogoutScreen"
                .ChildrenAsTriggers = True
                .UpdateMode = UpdatePanelUpdateMode.Conditional
            End With
            Panel.Controls.Add(UpdatePanel_LogoutScreen)

            'Customer Help Message
            Dim tableHelp As Table
            tableHelp = New Table
            With tableHelp
                .CellPadding = 0
                .CellSpacing = 0
                .Width = [Width]
            End With
            UpdatePanel_LogoutScreen.ContentTemplateContainer.Controls.Add(tableHelp)

            Dim trHelp As TableRow
            trHelp = New TableRow
            tableHelp.Controls.Add(trHelp)

            Dim tdHelp As TableCell
            tdHelp = New TableCell
            With tdHelp
                .Height = 60
                .Width = 100%
                .Style.Add(HtmlTextWriterStyle.Height, "60px")
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .Style.Add(HtmlTextWriterStyle.TextAlign, "left")
                .Style.Add(HtmlTextWriterStyle.PaddingLeft, "5px")
                .VerticalAlign = VerticalAlign.Middle
            End With
            trHelp.Controls.Add(tdHelp)

            'Control Title
            Dim panelTitle As Panel
            panelTitle = New Panel
            tdHelp.Controls.Add(panelTitle)

            Dim lblTitle As Label
            lblTitle = New Label
            With lblTitle
                .CssClass = [CssStyle_Help_TitleText]
                .Style.Add(HtmlTextWriterStyle.Color, "Black")
                .Text = "Site Administrator V1.42 Secure Logout"
            End With
            panelTitle.Controls.Add(lblTitle)

            'Help Message
            Dim panelHelp As Panel
            panelHelp = New Panel
            With panelHelp
                .Style.Add(HtmlTextWriterStyle.PaddingTop, "5px")
            End With
            tdHelp.Controls.Add(panelHelp)

            Dim lblHelp As Label
            lblHelp = New Label
            With lblHelp
                .CssClass = [CssStyle_Text]
                .Style.Add(HtmlTextWriterStyle.Color, "Gray")
                .Text = "Secure Logout is Clearing your Credentials"
            End With
            panelHelp.Controls.Add(lblHelp)

            'Main Container
            Dim table As Table
            table = New Table
            With table
                .CellPadding = 0
                .CellSpacing = 0
                .Width = [Width]
                .CssClass = [CssClass]
                .ToolTip = [ToolTip]
                .BackColor = [BackColor]
                '.Attributes.Add("Border", "0")
            End With
            UpdatePanel_LogoutScreen.ContentTemplateContainer.Controls.Add(table)

            'Progress Template
            Dim trProgress As TableRow
            trProgress = New TableRow
            table.Controls.Add(trProgress)

            Dim tdProgress As TableCell
            tdProgress = New TableCell
            With tdProgress
                .ColumnSpan = 2
                .CssClass = [CssStyle_ProgressText]
                .Style.Add(HtmlTextWriterStyle.TextAlign, "center")
                .VerticalAlign = VerticalAlign.Middle
            End With
            trProgress.Controls.Add(tdProgress)

            'Now setup the updateprogress
            UpdateProgress_LogoutScreen = New UpdateProgress
            With UpdateProgress_LogoutScreen
                .ID = [ID] & "UpdateProgress_LogoutScreen"
                .DynamicLayout = True
                .AssociatedUpdatePanelID = Me.UpdatePanel_LogoutScreen.ID
            End With

            Dim TheImageURL As String = cs.GetWebResourceUrl(rsType, "redCopper.ice5.admin.loading_animation_liferay.gif").ToString
            LogoutTemplate.ProgressImageURL = TheImageURL

            Dim template As ITemplate = New LogoutTemplate
            Me.UpdateProgress_LogoutScreen.ProgressTemplate = template
            tdProgress.Controls.Add(Me.UpdateProgress_LogoutScreen)
            'End Of UpdateProgressPanel

            'Rate Calculator Status
            Dim trStatus As TableRow
            trStatus = New TableRow
            table.Controls.Add(trStatus)

            Dim tdStatus As TableCell
            tdStatus = New TableCell
            With tdStatus
                .Width = 40%
                .Height = 26
                .ColumnSpan = 2
                .CssClass = [CssStyle_Text]
                .Style.Add(HtmlTextWriterStyle.Width, "80%")
                .Style.Add(HtmlTextWriterStyle.Height, "26px")
                .Style.Add(HtmlTextWriterStyle.TextAlign, "center")
                .Style.Add(HtmlTextWriterStyle.PaddingRight, "2px")
                .VerticalAlign = VerticalAlign.Middle
            End With
            trStatus.Controls.Add(tdStatus)

            lblStatus = New Label
            With lblStatus
                .CssClass = [CssStyle_Text]
                .Style.Add(HtmlTextWriterStyle.Color, "Gray")
                .Text = "Secure Logout is Protecting your Credentials"
            End With
            tdStatus.Controls.Add(lblStatus)

            Dim table_LogoutScreen As Table
            table_LogoutScreen = New Table
            With table_LogoutScreen
                .CellPadding = 0
                .CellSpacing = 0
                .Width = [Width]
                .CssClass = [CssClass]
                .ToolTip = [ToolTip]
                .BorderColor = [BorderColor]
                .BorderStyle = [BorderStyle]
                .BorderWidth = [BorderWidth]
                '.Attributes.Add("Border", "1")
            End With
            UpdatePanel_LogoutScreen.ContentTemplateContainer.Controls.Add(table_LogoutScreen)

            Dim tr_LogoutScreen_Container As TableRow
            tr_LogoutScreen_Container = New TableRow
            table_LogoutScreen.Controls.Add(tr_LogoutScreen_Container)

            Dim td_LogoutScreen_Container As TableCell
            td_LogoutScreen_Container = New TableCell
            With td_LogoutScreen_Container
                .Width = 100%
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .VerticalAlign = VerticalAlign.Top
            End With
            tr_LogoutScreen_Container.Controls.Add(td_LogoutScreen_Container)

            Dim table_LogoutScreen_Container As Table
            table_LogoutScreen_Container = New Table
            With table_LogoutScreen_Container
                .CellPadding = 0
                .CellSpacing = 0
                .Width = [Width]
                .Height = 350
                .BorderColor = [BorderColor]
                .BorderStyle = [BorderStyle]
                .BorderWidth = [BorderWidth]
                .Style.Add(HtmlTextWriterStyle.Width, [Width].ToString)
                .Style.Add(HtmlTextWriterStyle.Height, "350px")
                '.Attributes.Add("border", "1")
            End With
            td_LogoutScreen_Container.Controls.Add(table_LogoutScreen_Container)

            Dim tr_LogoutScreen_UpperSpacer As TableRow
            tr_LogoutScreen_UpperSpacer = New TableRow
            With tr_LogoutScreen_UpperSpacer
            End With
            table_LogoutScreen_Container.Controls.Add(tr_LogoutScreen_UpperSpacer)

            Dim td_LogoutScreen_UpperSpacer As TableCell
            td_LogoutScreen_UpperSpacer = New TableCell
            With td_LogoutScreen_UpperSpacer
                .Width = 100%
                .Height = 350
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .Style.Add(HtmlTextWriterStyle.Height, "350px")
                .Text = "&nbsp;"
            End With
            tr_LogoutScreen_UpperSpacer.Controls.Add(td_LogoutScreen_UpperSpacer)

            Dim imgLogout As Image
            imgLogout = New Image
            With imgLogout
                .ImageAlign = ImageAlign.AbsMiddle
                .ImageUrl = cs.GetWebResourceUrl(rsType, "redCopper.ice5.admin.BG_LogoutScreen2.png")
            End With
            td_LogoutScreen_UpperSpacer.Controls.Add(imgLogout)

            'LowerSpacer
            Dim tr_LowerSpacer As TableRow
            tr_LowerSpacer = New TableRow
            With tr_LowerSpacer
            End With
            table_LogoutScreen.Controls.Add(tr_LowerSpacer)

            Dim td_LowerSpacer As TableCell
            td_LowerSpacer = New TableCell
            With td_LowerSpacer
                .Width = 100%
                .Height = 32
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .Style.Add(HtmlTextWriterStyle.Height, "32px")
            End With
            tr_LowerSpacer.Controls.Add(td_LowerSpacer)

        End Sub
        Private Sub RenderDesignMode(ByVal writer As HtmlTextWriter)

            Controls.Clear()

            Dim cs As ClientScriptManager = Me.Page.ClientScript
            Dim rsType As Type = Me.GetType()

            Dim Comment As LiteralControl
            Comment = New LiteralControl
            Comment.Text = "<!-- Internet Commerce Engine 5 Display_LogoutScreen V1.4.2 for ASP.NET -->" & vbCrLf
            Controls.Add(Comment)

            Panel = New Panel
            With Panel
                .Attributes.Add("id", [ID] & "_RateCalculator")
                .Visible = [Visible]
                .Style.Add(HtmlTextWriterStyle.Width, [Width].ToString)
                .Style.Add(HtmlTextWriterStyle.TextAlign, "center")
                .Style.Add(HtmlTextWriterStyle.Margin, "0px auto")
            End With
            Controls.Add(Panel)

            'Customer Help Message
            Dim tableHelp As Table
            tableHelp = New Table
            With tableHelp
                .CellPadding = 0
                .CellSpacing = 0
                .Width = [Width]
            End With
            Panel.Controls.Add(tableHelp)

            Dim trHelp As TableRow
            trHelp = New TableRow
            tableHelp.Controls.Add(trHelp)

            Dim tdHelp As TableCell
            tdHelp = New TableCell
            With tdHelp
                .Height = 60
                .Width = 100%
                .Style.Add(HtmlTextWriterStyle.Height, "60px")
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .Style.Add(HtmlTextWriterStyle.TextAlign, "left")
                .Style.Add(HtmlTextWriterStyle.PaddingLeft, "5px")
                .VerticalAlign = VerticalAlign.Middle
            End With
            trHelp.Controls.Add(tdHelp)

            'Control Title
            Dim panelTitle As Panel
            panelTitle = New Panel
            tdHelp.Controls.Add(panelTitle)

            Dim lblTitle As Label
            lblTitle = New Label
            With lblTitle
                .CssClass = [CssStyle_Help_TitleText]
                .Style.Add(HtmlTextWriterStyle.Color, "Black")
                .Text = "Site Administrator V1.42 Secure Logout"
            End With
            panelTitle.Controls.Add(lblTitle)

            'Help Message
            Dim panelHelp As Panel
            panelHelp = New Panel
            With panelHelp
                .Style.Add(HtmlTextWriterStyle.PaddingTop, "5px")
            End With
            tdHelp.Controls.Add(panelHelp)

            Dim lblHelp As Label
            lblHelp = New Label
            With lblHelp
                .CssClass = [CssStyle_Text]
                .Style.Add(HtmlTextWriterStyle.Color, "Gray")
                .Text = "Secure Logout is Clearing your Credentials"
            End With
            panelHelp.Controls.Add(lblHelp)

            'Main Container
            Dim table As Table
            table = New Table
            With table
                .CellPadding = 0
                .CellSpacing = 0
                .Width = [Width]
                .CssClass = [CssClass]
                .ToolTip = [ToolTip]
                '.Attributes.Add("Border", "1")
            End With
            Panel.Controls.Add(table)

            'Phoney Progress Template
            Dim trProgress As TableRow
            trProgress = New TableRow
            table.Controls.Add(trProgress)

            Dim tdProgress As TableCell
            tdProgress = New TableCell
            With tdProgress
                .ColumnSpan = 2
                .CssClass = [CssStyle_ProgressText]
                .Style.Add(HtmlTextWriterStyle.TextAlign, "center")
                .Style.Add("border-left", "solid 1px #CCCCCC")
                .Style.Add("border-right", "solid 1px #CCCCCC")
                .Style.Add("border-bottom", "solid 1px #CCCCCC")
                .VerticalAlign = VerticalAlign.Middle
            End With
            trProgress.Controls.Add(tdProgress)

            Dim panel_ProgressText As Panel
            panel_ProgressText = New Panel
            With panel_ProgressText
                .CssClass = [CssStyle_Text]
                .Style.Add(HtmlTextWriterStyle.TextAlign, "center")
            End With
            tdProgress.Controls.Add(panel_ProgressText)

            Dim literal_Progress As LiteralControl
            literal_Progress = New LiteralControl
            literal_Progress.Text = "Processing, Please Wait ..."
            panel_ProgressText.Controls.Add(literal_Progress)

            Dim imgProgress As Image
            imgProgress = New Image
            imgProgress = New Image
            imgProgress.ImageAlign = ImageAlign.AbsMiddle
            imgProgress.ImageUrl = cs.GetWebResourceUrl(rsType, "redCopper.ice5.admin.loading_animation_liferay.gif")
            tdProgress.Controls.Add(imgProgress)

            'Logout Screen Status
            Dim trStatus As TableRow
            trStatus = New TableRow
            table.Controls.Add(trStatus)

            Dim tdStatus As TableCell
            tdStatus = New TableCell
            With tdStatus
                .Width = 100%
                .Height = 26
                .ColumnSpan = 2
                .CssClass = [CssStyle_Text]
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .Style.Add(HtmlTextWriterStyle.Height, "26px")
                .Style.Add(HtmlTextWriterStyle.TextAlign, "center")
                .Style.Add(HtmlTextWriterStyle.PaddingRight, "2px")
                .VerticalAlign = VerticalAlign.Middle
            End With
            trStatus.Controls.Add(tdStatus)

            lblStatus = New Label
            With lblStatus
                .CssClass = [CssStyle_Text]
                .Style.Add(HtmlTextWriterStyle.Color, "Gray")
                .Text = "Secure Logout is Protecting your Credentials"
            End With
            tdStatus.Controls.Add(lblStatus)

            Dim table_LogoutScreen As Table
            table_LogoutScreen = New Table
            With table_LogoutScreen
                .CellPadding = 0
                .CellSpacing = 0
                .Width = [Width]
                .CssClass = [CssClass]
                .ToolTip = [ToolTip]
                'tableLogoutScreen.Attributes.Add("Border", "1")
            End With
            Panel.Controls.Add(table_LogoutScreen)

            'Logout Screen Image Header
            Dim trLogoutScreen_ImageHeader As TableRow
            trLogoutScreen_ImageHeader = New TableRow
            table_LogoutScreen.Controls.Add(trLogoutScreen_ImageHeader)

            Dim tdLogoutScreen_ImageHeader As TableCell
            tdLogoutScreen_ImageHeader = New TableCell
            With tdLogoutScreen_ImageHeader
                .ColumnSpan = 1
                .Height = 22
                .Width = 100%
                .Style.Add(HtmlTextWriterStyle.Height, "22px")
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
            End With
            trLogoutScreen_ImageHeader.Controls.Add(tdLogoutScreen_ImageHeader)

            Dim tr_LogoutScreen_Container As TableRow
            tr_LogoutScreen_Container = New TableRow
            table_LogoutScreen.Controls.Add(tr_LogoutScreen_Container)

            Dim td_LogoutScreen_Container As TableCell
            td_LogoutScreen_Container = New TableCell
            With td_LogoutScreen_Container
                .Width = 100%
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .VerticalAlign = VerticalAlign.Top
            End With
            tr_LogoutScreen_Container.Controls.Add(td_LogoutScreen_Container)

            Dim table_LogoutScreen_Container As Table
            table_LogoutScreen_Container = New Table
            With table_LogoutScreen_Container
                .CellPadding = 0
                .CellSpacing = 0
                .Width = [Width]
                .Height = 350
                .BorderColor = [BorderColor]
                .BorderStyle = [BorderStyle]
                .BorderWidth = [BorderWidth]
                .Style.Add(HtmlTextWriterStyle.Width, [Width].ToString)
                .Style.Add(HtmlTextWriterStyle.Height, "350px")
                '.Attributes.Add("border", "0")
            End With
            td_LogoutScreen_Container.Controls.Add(table_LogoutScreen_Container)

            Dim tr_LogoutScreen_UpperSpacer As TableRow
            tr_LogoutScreen_UpperSpacer = New TableRow
            With tr_LogoutScreen_UpperSpacer
            End With
            table_LogoutScreen_Container.Controls.Add(tr_LogoutScreen_UpperSpacer)

            Dim td_LogoutScreen_UpperSpacer As TableCell
            td_LogoutScreen_UpperSpacer = New TableCell
            With td_LogoutScreen_UpperSpacer
                .Width = 100%
                .Height = 350
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .Style.Add(HtmlTextWriterStyle.Height, "350px")
                .Text = "&nbsp;"
            End With
            tr_LogoutScreen_UpperSpacer.Controls.Add(td_LogoutScreen_UpperSpacer)

            Dim imgLogout As Image
            imgLogout = New Image
            With imgLogout
                .ImageAlign = ImageAlign.AbsMiddle
                .ImageUrl = cs.GetWebResourceUrl(rsType, "redCopper.ice5.admin.BG_LogoutScreen2.png")
            End With
            td_LogoutScreen_UpperSpacer.Controls.Add(imgLogout)

            'LowerSpacer
            Dim tr_LowerSpacer As TableRow
            tr_LowerSpacer = New TableRow
            With tr_LowerSpacer
            End With
            table_LogoutScreen.Controls.Add(tr_LowerSpacer)

            Dim td_LowerSpacer As TableCell
            td_LowerSpacer = New TableCell
            With td_LowerSpacer
                .Width = 100%
                .Height = 32
                .Style.Add(HtmlTextWriterStyle.Width, "100%")
                .Style.Add(HtmlTextWriterStyle.Height, "32px")
            End With
            tr_LowerSpacer.Controls.Add(td_LowerSpacer)

            Panel.RenderControl(writer)

        End Sub
        Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
            MyBase.OnLoad(e)
        
            Dim Context As HttpContext = HttpContext.Current
            Dim cs As ClientScriptManager = Me.Page.ClientScript
            Dim rsType As Type = Me.GetType()

            Dim CookieExist As Boolean = False
            Dim Admin_UserName As String = Nothing
            Dim SecureLocation As Boolean = False

            Admin_UserName = Context.Session("ADMIN_UserName")
            SecureLocation = Context.Session("ADMIN_LOCATION")

            If SecureLocation = False Then
                Dim cj As New redCopper.ice5.admin.Admin_CookieJar
                With cj
                    CookieExist = .DoesCookieExist()
                    If CookieExist = True Then
                        .DestroyEncryptedCookie(Admin_UserName, True)
                    End If
                End With
                cj = Nothing
            End If

            Dim su As New redCopper.ice5.admin.Admin_SignOutUser
            With su
                .UpdateLastLogin(Admin_UserName)
                .DestroySession()
            End With
            su = Nothing

        End Sub
        <Bindable(True)> _
        <Category("Appearance")> _
        <RefreshProperties(RefreshProperties.Repaint)> _
        <EditorAttribute(GetType(System.Web.UI.Design.UrlEditor), GetType(UITypeEditor))> _
        <Localizable(True)> _
        Property Logout_HeaderImage_Url() As String
            Get
                Dim _Logout_HeaderImage_Url As String = CStr(ViewState("Logout_HeaderImage_Url"))
                If _Logout_HeaderImage_Url Is Nothing Then
                    Return String.Empty
                Else
                    Return _Logout_HeaderImage_Url
                End If
            End Get

            Set(ByVal Value As String)
                ViewState("Logout_HeaderImage_Url") = Value
            End Set
        End Property

        <Bindable(True)> _
         <Category("Appearance")> _
         <DefaultValue("")> _
         <Localizable(True)> Property CssStyle_ProgressText() As String
            Get
                Dim s As String = CStr(ViewState("CssStyle_ProgressText"))
                If s Is Nothing Then
                    Return String.Empty
                Else
                    Return s
                End If
            End Get

            Set(ByVal Value As String)
                ViewState("CssStyle_ProgressText") = Value
            End Set
        End Property
        <Bindable(True)> _
         <Category("Appearance")> _
         <DefaultValue("")> _
         <RefreshProperties(RefreshProperties.Repaint)> _
         <Localizable(True)> Property CssStyle_InputControl() As String
            Get
                Dim s As String = CStr(ViewState("CssStyle_InputControl"))
                If s Is Nothing Then
                    Return String.Empty
                Else
                    Return s
                End If
            End Get

            Set(ByVal Value As String)
                ViewState("CssStyle_InputControl") = Value
            End Set

        End Property
        <Bindable(True)> _
        <Category("Appearance")> _
        <DefaultValue("")> _
        <Localizable(True)> Property CssStyle_Text() As String
            Get
                Dim s As String = CStr(ViewState("CssStyle_Text"))
                If s Is Nothing Then
                    Return String.Empty
                Else
                    Return s
                End If
            End Get

            Set(ByVal Value As String)
                ViewState("CssStyle_Text") = Value
            End Set
        End Property
        <Bindable(True)> _
        <Category("Appearance")> _
        <DefaultValue("")> _
        <Localizable(True)> Property CssStyle_Help_TitleText() As String
            Get
                Dim s As String = CStr(ViewState("CssStyle_Help_TitleText"))
                If s Is Nothing Then
                    Return String.Empty
                Else
                    Return s
                End If
            End Get

            Set(ByVal Value As String)
                ViewState("CssStyle_Help_TitleText") = Value
            End Set
        End Property
        <Bindable(True)> _
        <Category("Appearance")> _
        <DefaultValue("")> _
        <Localizable(True)> _
        Property Text() As String
            Get
                Dim s As String = CStr(ViewState("Text"))
                If s Is Nothing Then
                    Return String.Empty
                Else
                    Return s
                End If
            End Get

            Set(ByVal Value As String)
                ViewState("Text") = Value
            End Set
        End Property

    End Class

    Public Class LogoutTemplate
        Implements ITemplate

        Public Shared ProgressImageURL As String

        Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn

            Dim panel_Message As New Panel
            panel_Message = New Panel
            panel_Message.Style.Add(HtmlTextWriterStyle.Width, "250px;")
            panel_Message.Style.Add(HtmlTextWriterStyle.TextAlign, "center;")
            panel_Message.Style.Add(HtmlTextWriterStyle.Margin, "0 auto;")
            container.Controls.Add(panel_Message)

            Dim lblMessage As Label
            lblMessage = New Label
            lblMessage.Text = "Processing, Please Wait ..."
            panel_Message.Controls.Add(lblMessage)

            Dim panel_Image As New Panel
            panel_Image = New Panel
            panel_Image.Style.Add(HtmlTextWriterStyle.Width, "250px;")
            panel_Image.Style.Add(HtmlTextWriterStyle.TextAlign, "center;")
            panel_Image.Style.Add(HtmlTextWriterStyle.Margin, "0 auto;")
            container.Controls.Add(panel_Image)

            Dim imgProgress As Image = New Image
            imgProgress.ImageAlign = ImageAlign.AbsMiddle
            imgProgress.ImageUrl = ProgressImageURL
            panel_Image.Controls.Add(imgProgress)

        End Sub

    End Class

Page 1 of 1 (9 items)