this problem was bugging me, and this blog provided me solution for it.
http://wpfwonderland.wordpress.com/2007/08/16
/clr-has-been-unable-to-transition-from-com-context-for-60-seconds/
Cheers
Friday, August 24, 2007
Tuesday, January 09, 2007
SOAP Exception, with trace or without
When a Web service returns a SOAP Exception, you could decide on whether to pass on the trace or not.
If the web service consumer could be indicated with the trace, so as to help in fixing the problem then pass on the trace.
Or when business layer validations are thrown as exception all you need is "Server was unable to process --> User name is invalid", instead of the lengthy SOAP exception.
To enable exception, with trace, Web.config of web service, set the customErrors mode to "RemoteOnly" or "Off"
To disable trace in the exception, Web.config of web service, set the customErrors mode to "On"
Cheers
If the web service consumer could be indicated with the trace, so as to help in fixing the problem then pass on the trace.
Or when business layer validations are thrown as exception all you need is "Server was unable to process --> User name is invalid", instead of the lengthy SOAP exception.
To enable exception, with trace, Web.config of web service, set the customErrors mode to "RemoteOnly" or "Off"
To disable trace in the exception, Web.config of web service, set the customErrors mode to "On"
Cheers
Friday, October 27, 2006
Class doesn't support automation
Annoying problem - Class doesn't support automation: JScript Error
Every time I browse the Internet with IE, had to live up with this error, was really annoying.
As usual was not on the top of priority so didnt look into that as an issue.
Today I thought this is the day, lets put an end to it. Looked for help on Net using gooooogle and ended up with
http://www.techgroup21.com/sub2page.asp?sub2navID=19
followed the steps mentioned, except the step with WScript.exe, as it was already there.
And got rid of it :-)
Every time I browse the Internet with IE, had to live up with this error, was really annoying.
As usual was not on the top of priority so didnt look into that as an issue.
Today I thought this is the day, lets put an end to it. Looked for help on Net using gooooogle and ended up with
http://www.techgroup21.com/sub2page.asp?sub2navID=19
followed the steps mentioned, except the step with WScript.exe, as it was already there.
And got rid of it :-)
Friday, October 20, 2006
Form Authentication Login Page
Using MS VisualStudio.Net 2005, developing an ASP.Net web application with forms authentication [VS.Net builtin web server], then look further.
Wonder why the login page images / style sheets are not loaded in forms
authentication.
This is because the built in webserver passes all request through ASP.Net.
For futher details http://weblogs.asp.net/scottgu/archive/2006/01/31/437027.aspx
Wonder why the login page images / style sheets are not loaded in forms
authentication.
This is because the built in webserver passes all request through ASP.Net.
For futher details http://weblogs.asp.net/scottgu/archive/2006/01/31/437027.aspx
Thursday, June 01, 2006
IgnoreSectionHandler
When you add custom configurations in application config, then you will have to provide configuration handlers in config sections, when you dont want to handle them seperately, instead plan to read the xml and get values use
Add section with type of System.Configuration.IgnoreSectionHandler, System for the custom config that you want to ignore
this would prevent the system from throwing exception
Add section with type of System.Configuration.IgnoreSectionHandler, System for the custom config that you want to ignore
this would prevent the system from throwing exception
Friday, May 26, 2006
Batch Build - VS.Net 2003
Batch build option is available in VS.Net 2005 [Solution with C# projects], that allows you to build for all configuration. User could select multiple project and various build configuration.
But "Batch Build" option would not be available even if one VB.Net project is added to the solution.
But "Batch Build" option would not be available even if one VB.Net project is added to the solution.
System Tray Application
Trying to do a system tray application,
points to note:
1) ShowInTaskbar property of the window should be set to false
2) on Form_Load function call the hide function
3) Add NotifyIcon object
3) Add ContextMenu, and menu event handlers
4) Set the contextmenu object to NotifyIcon's contextmenu
points to note:
1) ShowInTaskbar property of the window should be set to false
2) on Form_Load function call the hide function
3) Add NotifyIcon object
3) Add ContextMenu, and menu event handlers
4) Set the contextmenu object to NotifyIcon's contextmenu
Monday, May 22, 2006
HttpRuntime - Max request length
When using Input type file and trying to upload huge files, returns an error "Maximum request length exceeded" or page not available error, thats because the ASP.Net max request length is set to 4 megs.
Incase you want to upload bigger files, then config has to be changed.
to be added in web.config [this would accept till 100 megs]
for further info refer http://support.microsoft.com/default.aspx?scid=kb;EN-US;295626
Incase you want to upload bigger files, then config has to be changed.
for further info refer http://support.microsoft.com/default.aspx?scid=kb;EN-US;295626
Friday, May 05, 2006
Difference between Build Solution and Rebuild Solution option in VS.Net
Source of information : http://dotnetjunkies.com/WebLog/nilapenn/archive/2004/05/22/14251.aspx
VisualStudio.Net provides us with two options for compiling and creating builds for our application. They are Build Solution and Rebuild Solution options which can be accessed from the Build menu. The differences between these two options are
1. The Build Solution option compiles only those project files and components that have changed since the last build. For example consider that you have two projects Proj1 and Proj2 in your solution MySolution. When you compile the solution using Build Solution option after making some changes to Proj1 only Proj1 will be compiled and built but Proj2 will not be compiled since there are no changes to it.
2. On the other hand the Rebuild Solution option builds all project files and components irrespective of the changes made to them. For example consider that you have two projects Proj1 and Proj2 in your solution MySolution. When you compile the solution using Rebuild Solution option after making some changes to Proj1, both Proj1 and Proj2 will be compiled and built even though there are no changes made to Proj2.
VisualStudio.Net provides us with two options for compiling and creating builds for our application. They are Build Solution and Rebuild Solution options which can be accessed from the Build menu. The differences between these two options are
1. The Build Solution option compiles only those project files and components that have changed since the last build. For example consider that you have two projects Proj1 and Proj2 in your solution MySolution. When you compile the solution using Build Solution option after making some changes to Proj1 only Proj1 will be compiled and built but Proj2 will not be compiled since there are no changes to it.
2. On the other hand the Rebuild Solution option builds all project files and components irrespective of the changes made to them. For example consider that you have two projects Proj1 and Proj2 in your solution MySolution. When you compile the solution using Rebuild Solution option after making some changes to Proj1, both Proj1 and Proj2 will be compiled and built even though there are no changes made to Proj2.
Thursday, December 08, 2005
Setting Name for controls created using Javascript
when you create input controls dynamically using javascript like
var inputValue = document.createElement('input');
and try to set the id using
inputValue.setAttribute('id', 'controlName');
works fine, creates and control added is <input id=controlName>
but when you try to set the name attribute, does not reflect in the control, reason being IE does not allow you to change the name of the control, after it is created.
Work around for this is
var inputValue = document.createElement('<input name="controlName">');
this would create the control with the name element.
If asked why should you go for this work around, in postback when you try to use Request.Form to read the dynamically created controls, would work only if the name attribute is added.
var inputValue = document.createElement('input');
and try to set the id using
inputValue.setAttribute('id', 'controlName');
works fine, creates and control added is <input id=controlName>
but when you try to set the name attribute, does not reflect in the control, reason being IE does not allow you to change the name of the control, after it is created.
Work around for this is
var inputValue = document.createElement('<input name="controlName">');
this would create the control with the name element.
If asked why should you go for this work around, in postback when you try to use Request.Form to read the dynamically created controls, would work only if the name attribute is added.
Friday, October 28, 2005
Friday, September 02, 2005
Set values for password control
When trying to set value for asp:textbox control with textmode password, using textboxname.Text, still loads blank textbox control.
To get the server control of password type with value use the following code instead
textboxname.Attributes("value") = "password"
To get the server control of password type with value use the following code instead
textboxname.Attributes("value") = "password"
Wednesday, August 31, 2005
Accessing user controls from code behind
You could access user controls from code behind to add dynamic controls
Add a place holder in user control, and make it public in code-behind
In application pages, code-behind declare an object of type user control
' user control used to add links
Dim pageMyControl As MyUserControl
Dim lnkNewLink As WebControls.LinkButton
Dim newLinkButtonIndex as Int32
' get the user control
pageMyControl = DirectCast(FindControl("ucMyControl"), MyUserControl)
If Not pageMyControl Is Nothing Then
lnkNewLink = New WebControls.LinkButton
lnkNewLink.Text = " [NewLink] "
lnkNewLink.ID = "lnkNewLink"
lnkNewLink.CausesValidation = False
' Add event handler to the link button,
' this function has to be written in page code-behind
AddHandler lnkNewLink.Click, AddressOf ControlNewLink
' Add the link button to user control
pageMyControl.phLinks.Controls.Add(lnkNewLink)
' if incase you want to show/hide the link button based on certain condition
' or change properties of the link button based on codition,
' the index is required
newLinkButtonIndex = pageMyControl.phLinks.Controls.IndexOf(lnkNewLink)
' heres an example to set visible property to false
pageMyControl.phLinks.Controls(newLinkButtonIndex).Visible = False
End If
Add a place holder in user control, and make it public in code-behind
In application pages, code-behind declare an object of type user control
' user control used to add links
Dim pageMyControl As MyUserControl
Dim lnkNewLink As WebControls.LinkButton
Dim newLinkButtonIndex as Int32
' get the user control
pageMyControl = DirectCast(FindControl("ucMyControl"), MyUserControl)
If Not pageMyControl Is Nothing Then
lnkNewLink = New WebControls.LinkButton
lnkNewLink.Text = " [NewLink] "
lnkNewLink.ID = "lnkNewLink"
lnkNewLink.CausesValidation = False
' Add event handler to the link button,
' this function has to be written in page code-behind
AddHandler lnkNewLink.Click, AddressOf ControlNewLink
' Add the link button to user control
pageMyControl.phLinks.Controls.Add(lnkNewLink)
' if incase you want to show/hide the link button based on certain condition
' or change properties of the link button based on codition,
' the index is required
newLinkButtonIndex = pageMyControl.phLinks.Controls.IndexOf(lnkNewLink)
' heres an example to set visible property to false
pageMyControl.phLinks.Controls(newLinkButtonIndex).Visible = False
End If
Custom text box
Custom text box with required field validator, regular expression validators
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
<DefaultProperty("Text"), ToolboxData("<{0}:TextBox runat=server></{0}:TextBox>")> _
Public Class TextBox
Inherits System.Web.UI.WebControls.TextBox
#Region "Private/Public/Shared variables"
' private variables
Private _text As String = String.Empty
' reg ex validator properties
Private _textType As ENums.TextType
Private _typeText As String = String.Empty
Private _typeDisplay As ValidatorDisplay = ValidatorDisplay.None
Private _typeVisible As Boolean = True
Private _typeEnabled As Boolean = True
Private _typeEnableClientScript As Boolean = True
Private _typeEnableViewState As Boolean
Private _typeCssClass As String = String.Empty
Private _typeErrorMessage As String = " Is Invalid"
Private _typeSpecialChars As String = String.Empty
'required field validator properties
Private _isRequired As Boolean
Private _requiredErrorMessage As String = " Is Required"
Private _requiredText As String = " *"
Private _requiredDisplay As ValidatorDisplay = ValidatorDisplay.Static
Private _requiredVisible As Boolean = True
Private _requiredEnabled As Boolean = True
Private _requiredEnableClientScript As Boolean = True
Private _requiredEnableViewState As Boolean
Private _requiredCssClass As String = String.Empty
Private _requiredShowTextAlways As Boolean = True
' private controls
Private requiredValidate As RequiredFieldValidator
Private regExpValidate As RegularExpressionValidator
#End Region
#Region "Properties"
#Region "Property Overrides"
<Bindable(True), Category("Appearance"), DefaultValue("")> _
Public Overrides Property [Text]() As String
Get
Return _text
End Get
Set(ByVal Value As String)
_text = Value
End Set
End Property
#End Region
#Region "Custom properties"
<Bindable(True), Category("Validate"), DefaultValue(" Is Required")> _
Public Property RequiredErrorMessage() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredErrorMessage") Is Nothing Then
Return Convert.ToString(ViewState("RequiredErrorMessage"))
Else
Return _requiredErrorMessage
End If
Else
Return _requiredErrorMessage
End If
End Get
Set(ByVal Value As String)
Try
_requiredErrorMessage = Value
If Me.EnableViewState Then
ViewState("RequiredErrorMessage") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.ErrorMessage = Value
End If
Catch
_requiredErrorMessage = String.Empty
If Me.EnableViewState Then
ViewState("RequiredErrorMessage") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property IsRequired() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("IsRequired") Is Nothing Then
Return Convert.ToBoolean(ViewState("IsRequired"))
Else
Return _isRequired
End If
Else
Return _isRequired
End If
End Get
Set(ByVal Value As Boolean)
Try
_isRequired = Value
If Me.EnableViewState Then
ViewState("IsRequired") = Value
End If
If Value Then
If requiredValidate Is Nothing Then
requiredValidate = New RequiredFieldValidator
requiredValidate.ControlToValidate = Me.ClientID
requiredValidate.Display = _requiredDisplay
requiredValidate.ErrorMessage = RequiredErrorMessage
requiredValidate.Text = _requiredText
requiredValidate.EnableClientScript = _requiredEnableClientScript
requiredValidate.Enabled = _requiredEnabled
requiredValidate.Visible = _requiredVisible
requiredValidate.EnableViewState = _requiredEnableViewState
requiredValidate.CssClass = _requiredCssClass
Me.Controls.Add(requiredValidate)
End If
Else
If Not requiredValidate Is Nothing Then
Me.Controls.Remove(requiredValidate)
requiredValidate = Nothing
End If
End If
Catch
_isRequired = False
If Me.EnableViewState Then
ViewState("IsRequired") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(" *")> _
Public Property RequiredText() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredText") Is Nothing Then
Return Convert.ToString(ViewState("RequiredText"))
Else
Return _requiredText
End If
Else
Return _requiredText
End If
End Get
Set(ByVal Value As String)
Try
_requiredText = Value
If Me.EnableViewState Then
ViewState("RequiredText") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Text = _requiredText
End If
Catch
_requiredText = String.Empty
If Me.EnableViewState Then
ViewState("RequiredText") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredShowTextAlways() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredShowTextAlways") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredShowTextAlways"))
Else
Return _requiredShowTextAlways
End If
Else
Return _requiredShowTextAlways
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredShowTextAlways = Value
If Me.EnableViewState Then
ViewState("RequiredShowTextAlways") = Value
End If
Catch
_requiredShowTextAlways = True
If Me.EnableViewState Then
ViewState("RequiredShowTextAlways") = True
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(ValidatorDisplay.Static)> _
Public Property RequiredDisplay() As ValidatorDisplay
Get
If Me.EnableViewState Then
If Not ViewState("RequiredDisplay") Is Nothing Then
Return CType(ViewState("RequiredDisplay"), ValidatorDisplay)
Else
Return _requiredDisplay
End If
Else
Return _requiredDisplay
End If
End Get
Set(ByVal Value As ValidatorDisplay)
Try
_requiredDisplay = Value
If Me.EnableViewState Then
ViewState("RequiredDisplay") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Display = Value
End If
Catch
_requiredDisplay = ValidatorDisplay.None
If Me.EnableViewState Then
ViewState("RequiredDisplay") = ValidatorDisplay.None
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredVisible() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredVisible") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredVisible"))
Else
Return _requiredVisible
End If
Else
Return _requiredVisible
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredVisible = Value
If Me.EnableViewState Then
ViewState("RequiredVisible") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Visible = _requiredVisible
End If
Catch
_requiredVisible = False
If Me.EnableViewState Then
ViewState("RequiredVisible") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredEnabled() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnabled") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnabled"))
Else
Return _requiredEnabled
End If
Else
Return _requiredEnabled
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnabled = Value
If Me.EnableViewState Then
ViewState("RequiredEnabled") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Enabled = _requiredEnabled
End If
Catch
_requiredEnabled = False
If Me.EnableViewState Then
ViewState("RequiredEnabled") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredEnableClientScript() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnableClientScript") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnableClientScript"))
Else
Return _requiredEnableClientScript
End If
Else
Return _requiredEnableClientScript
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnableClientScript = Value
If Me.EnableViewState Then
ViewState("RequiredEnableClientScript") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.EnableClientScript = _requiredEnableClientScript
End If
Catch
_requiredEnableClientScript = False
If Me.EnableViewState Then
ViewState("RequiredEnableClientScript") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property RequiredEnableViewState() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnableViewState") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnableViewState"))
Else
Return _requiredEnableViewState
End If
Else
Return _requiredEnableViewState
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnableViewState = Value
If Me.EnableViewState Then
ViewState("RequiredEnableViewState") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.EnableViewState = _requiredEnableViewState
End If
Catch
_requiredEnableViewState = False
If Me.EnableViewState Then
ViewState("RequiredEnableViewState") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue("")> _
Public Property RequiredCSSClass() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredCssClass") Is Nothing Then
Return Convert.ToString(ViewState("RequiredCssClass"))
Else
Return _requiredCssClass
End If
Else
Return _requiredCssClass
End If
End Get
Set(ByVal Value As String)
Try
_requiredCssClass = Value
If Me.EnableViewState Then
ViewState("RequiredCssClass") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.CssClass = _requiredCssClass
End If
Catch
_requiredCssClass = String.Empty
If Me.EnableViewState Then
ViewState("RequiredCssClass") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(ValidatorDisplay.Static)> _
Public Property TypeDisplay() As ValidatorDisplay
Get
If Me.EnableViewState Then
If Not ViewState("TypeDisplay") Is Nothing Then
Return CType(ViewState("TypeDisplay"), ValidatorDisplay)
Else
Return _typeDisplay
End If
Else
Return _typeDisplay
End If
End Get
Set(ByVal Value As ValidatorDisplay)
Try
_typeDisplay = Value
If Me.EnableViewState Then
ViewState("TypeDisplay") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.Display = _typeDisplay
End If
Catch
_typeDisplay = ValidatorDisplay.None
If Me.EnableViewState Then
ViewState("TypeDisplay") = ValidatorDisplay.None
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property TypeVisible() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("TypeVisible") Is Nothing Then
Return Convert.ToBoolean(ViewState("TypeVisible"))
Else
Return _typeVisible
End If
Else
Return _typeVisible
End If
End Get
Set(ByVal Value As Boolean)
Try
_typeVisible = Value
If Me.EnableViewState Then
ViewState("TypeVisible") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.Visible = _typeVisible
End If
Catch
_typeVisible = False
If Me.EnableViewState Then
ViewState("TypeVisible") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property TypeEnabled() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("TypeEnabled") Is Nothing Then
Return Convert.ToBoolean(ViewState("TypeEnabled"))
Else
Return _typeEnabled
End If
Else
Return _typeEnabled
End If
End Get
Set(ByVal Value As Boolean)
Try
_typeEnabled = Value
If Me.EnableViewState Then
ViewState("TypeEnabled") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.Enabled = _typeEnabled
End If
Catch
_typeEnabled = False
If Me.EnableViewState Then
ViewState("TypeEnabled") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property TypeEnableClientScript() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("TypeEnableClientScript") Is Nothing Then
Return Convert.ToBoolean(ViewState("TypeEnableClientScript"))
Else
Return _typeEnableClientScript
End If
Else
Return _typeEnableClientScript
End If
End Get
Set(ByVal Value As Boolean)
Try
_typeEnableClientScript = Value
If Me.EnableViewState Then
ViewState("TypeEnableClientScript") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.EnableClientScript = _typeEnableClientScript
End If
Catch
_typeEnableClientScript = False
If Me.EnableViewState Then
ViewState("TypeEnableClientScript") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property TypeEnableViewState() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("TypeEnableViewState") Is Nothing Then
Return Convert.ToBoolean(ViewState("TypeEnableViewState"))
Else
Return _typeEnableViewState
End If
Else
Return _typeEnableViewState
End If
End Get
Set(ByVal Value As Boolean)
Try
_typeEnableViewState = Value
If Me.EnableViewState Then
ViewState("TypeEnableViewState") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.EnableViewState = _typeEnableViewState
End If
Catch
_typeEnableViewState = False
If Me.EnableViewState Then
ViewState("TypeEnableViewState") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue("")> _
Public Property TypeCssClass() As String
Get
If Me.EnableViewState Then
If Not ViewState("TypeCssClass") Is Nothing Then
Return Convert.ToString(ViewState("TypeCssClass"))
Else
Return _typeCssClass
End If
Else
Return _typeCssClass
End If
End Get
Set(ByVal Value As String)
Try
_typeCssClass = Value
If Me.EnableViewState Then
ViewState("TypeCssClass") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.CssClass = _typeCssClass
End If
Catch
_typeCssClass = String.Empty
If Me.EnableViewState Then
ViewState("TypeCssClass") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue("")> _
Public Property TypeSpecialChars() As String
Get
If Me.EnableViewState Then
If Not ViewState("TypeSpecialChars") Is Nothing Then
Return Convert.ToString(ViewState("TypeSpecialChars"))
Else
Return _typeSpecialChars
End If
Else
Return _typeSpecialChars
End If
End Get
Set(ByVal Value As String)
Try
_typeSpecialChars = Value
If Me.EnableViewState Then
ViewState("TypeSpecialChars") = Value
End If
If Not regExpValidate Is Nothing Then
If _textType = ENums.TextType.AlphanumericSpecialChars Then
regExpValidate.ValidationExpression = "[a-zA-Z0-9" & _typeSpecialChars & "]*"
End If
End If
Catch
_typeSpecialChars = String.Empty
If Me.EnableViewState Then
ViewState("TypeSpecialChars") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(" Is Invalid")> _
Public Property TypeErrorMessage() As String
Get
If Me.EnableViewState Then
If Not ViewState("TypeErrorMessage") Is Nothing Then
Return Convert.ToString(ViewState("TypeErrorMessage"))
Else
Return _typeErrorMessage
End If
Else
Return _typeErrorMessage
End If
End Get
Set(ByVal Value As String)
Try
_typeErrorMessage = Value
If Me.EnableViewState Then
ViewState("TypeErrorMessage") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.ErrorMessage = _typeErrorMessage
End If
Catch
_typeErrorMessage = String.Empty
If Me.EnableViewState Then
ViewState("TypeErrorMessage") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(ENums.TextType.All)> _
Public Property TextType() As ENums.TextType
Get
If Me.EnableViewState Then
If Not ViewState("TextType") Is Nothing Then
Return CType(ViewState("TextType"), ENums.TextType)
Else
Return _textType
End If
Else
Return _textType
End If
End Get
Set(ByVal Value As ENums.TextType)
Try
_textType = Value
If Me.EnableViewState Then
ViewState("TextType") = Value
End If
SetRegEx(Value)
Catch
_textType = ENums.TextType.All
If Me.EnableViewState Then
ViewState("TextType") = ENums.TextType.All
End If
End Try
End Set
End Property
#End Region
#End Region
#Region "Methods/Functions/Sub"
Private Sub SetRegEx(ByVal Value As ENums.TextType)
If Value <> ENums.TextType.All Then
If regExpValidate Is Nothing Then
regExpValidate = New RegularExpressionValidator
regExpValidate.ControlToValidate = Me.ClientID
Me.Controls.Add(regExpValidate)
End If
regExpValidate.CssClass = _typeCssClass
regExpValidate.Display = _typeDisplay
regExpValidate.EnableClientScript = _typeEnableClientScript
regExpValidate.Enabled = _typeEnabled
regExpValidate.EnableViewState = _typeEnableViewState
regExpValidate.ErrorMessage = _typeErrorMessage
regExpValidate.Text = _typeText
Select Case Value
Case ENums.TextType.Alphabhets
regExpValidate.ValidationExpression = "[a-zA-Z]*"
Case ENums.TextType.Alphanumeric
regExpValidate.ValidationExpression = "[a-zA-Z0-9]*"
Case ENums.TextType.AlphanumericSpecialChars
regExpValidate.ValidationExpression = "[a-zA-Z0-9" & _typeSpecialChars & "]*"
Case ENums.TextType.Decimals
regExpValidate.ValidationExpression = "\d*\.{0,1}\d+"
Case ENums.TextType.Email
regExpValidate.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
Case ENums.TextType.Numeric
regExpValidate.ValidationExpression = "\d*"
Case Else
Me.Controls.Remove(regExpValidate)
regExpValidate = Nothing
End Select
Else
If Not regExpValidate Is Nothing Then
Me.Controls.Remove(regExpValidate)
regExpValidate = Nothing
End If
End If
End Sub
#End Region
#Region "Overrides"
Protected Overrides Sub OnInit(ByVal e As EventArgs)
MyBase.OnInit(e)
End Sub
Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
If Me.ReadOnly Then
_isRequired = False
_textType = ENums.TextType.All
If Not requiredValidate Is Nothing Then
Me.Controls.Remove(requiredValidate)
requiredValidate = Nothing
End If
If Not regExpValidate Is Nothing Then
Me.Controls.Remove(regExpValidate)
regExpValidate = Nothing
End If
' to make it look like a label
Me.BorderWidth = WebControls.Unit.Pixel(0)
MyBase.Render(output)
'output.Write("<span id=""" & Me.ClientID & """>" & Me.Text & "</span>")
Else
MyBase.Render(output)
If Not requiredValidate Is Nothing Then
If Me._requiredShowTextAlways Then
If Me._requiredCssClass.Length > 0 Then
output.Write(HtmlTextWriter.SpaceChar)
output.Write("<span class=""" & Me._requiredCssClass & """>" & Me._requiredText & "</span>")
Else
output.Write(HtmlTextWriter.SpaceChar)
output.Write("<span style=""color:Red"">" & Me._requiredText & "</span>")
End If
requiredValidate.Text = String.Empty
requiredValidate.Display = ValidatorDisplay.None
End If
If String.Compare(requiredValidate.ControlToValidate, String.Empty, False) = 0 Then
requiredValidate.ControlToValidate = Me.ClientID
End If
requiredValidate.RenderControl(output)
End If
If Not regExpValidate Is Nothing Then
If String.Compare(regExpValidate.ControlToValidate, String.Empty, False) = 0 Then
regExpValidate.ControlToValidate = Me.ClientID
End If
regExpValidate.RenderControl(output)
End If
End If
End Sub
Protected Overrides Sub AddAttributesToRender(ByVal writer As System.Web.UI.HtmlTextWriter)
MyBase.AddAttributesToRender(writer)
' this is added to trim values in text areas to max length
If Me.MaxLength > 0 And Me.TextMode = TextBoxMode.MultiLine Then
writer.AddAttribute("onblur", _
"this.value = this.value.slice(0," & Me.MaxLength & ");")
End If
End Sub
Protected Overrides Sub LoadViewState(ByVal savedState As Object)
If Not savedState Is Nothing Then
MyBase.LoadViewState(savedState)
Me.IsRequired = Me.IsRequired
End If
End Sub
#End Region
End Class
Public Class ENums
Public Enum TextType
All
Alphabhets
Alphanumeric
AlphanumericSpecialChars
Numeric
Decimals
Email
End Enum
End Class
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
<DefaultProperty("Text"), ToolboxData("<{0}:TextBox runat=server></{0}:TextBox>")> _
Public Class TextBox
Inherits System.Web.UI.WebControls.TextBox
#Region "Private/Public/Shared variables"
' private variables
Private _text As String = String.Empty
' reg ex validator properties
Private _textType As ENums.TextType
Private _typeText As String = String.Empty
Private _typeDisplay As ValidatorDisplay = ValidatorDisplay.None
Private _typeVisible As Boolean = True
Private _typeEnabled As Boolean = True
Private _typeEnableClientScript As Boolean = True
Private _typeEnableViewState As Boolean
Private _typeCssClass As String = String.Empty
Private _typeErrorMessage As String = " Is Invalid"
Private _typeSpecialChars As String = String.Empty
'required field validator properties
Private _isRequired As Boolean
Private _requiredErrorMessage As String = " Is Required"
Private _requiredText As String = " *"
Private _requiredDisplay As ValidatorDisplay = ValidatorDisplay.Static
Private _requiredVisible As Boolean = True
Private _requiredEnabled As Boolean = True
Private _requiredEnableClientScript As Boolean = True
Private _requiredEnableViewState As Boolean
Private _requiredCssClass As String = String.Empty
Private _requiredShowTextAlways As Boolean = True
' private controls
Private requiredValidate As RequiredFieldValidator
Private regExpValidate As RegularExpressionValidator
#End Region
#Region "Properties"
#Region "Property Overrides"
<Bindable(True), Category("Appearance"), DefaultValue("")> _
Public Overrides Property [Text]() As String
Get
Return _text
End Get
Set(ByVal Value As String)
_text = Value
End Set
End Property
#End Region
#Region "Custom properties"
<Bindable(True), Category("Validate"), DefaultValue(" Is Required")> _
Public Property RequiredErrorMessage() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredErrorMessage") Is Nothing Then
Return Convert.ToString(ViewState("RequiredErrorMessage"))
Else
Return _requiredErrorMessage
End If
Else
Return _requiredErrorMessage
End If
End Get
Set(ByVal Value As String)
Try
_requiredErrorMessage = Value
If Me.EnableViewState Then
ViewState("RequiredErrorMessage") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.ErrorMessage = Value
End If
Catch
_requiredErrorMessage = String.Empty
If Me.EnableViewState Then
ViewState("RequiredErrorMessage") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property IsRequired() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("IsRequired") Is Nothing Then
Return Convert.ToBoolean(ViewState("IsRequired"))
Else
Return _isRequired
End If
Else
Return _isRequired
End If
End Get
Set(ByVal Value As Boolean)
Try
_isRequired = Value
If Me.EnableViewState Then
ViewState("IsRequired") = Value
End If
If Value Then
If requiredValidate Is Nothing Then
requiredValidate = New RequiredFieldValidator
requiredValidate.ControlToValidate = Me.ClientID
requiredValidate.Display = _requiredDisplay
requiredValidate.ErrorMessage = RequiredErrorMessage
requiredValidate.Text = _requiredText
requiredValidate.EnableClientScript = _requiredEnableClientScript
requiredValidate.Enabled = _requiredEnabled
requiredValidate.Visible = _requiredVisible
requiredValidate.EnableViewState = _requiredEnableViewState
requiredValidate.CssClass = _requiredCssClass
Me.Controls.Add(requiredValidate)
End If
Else
If Not requiredValidate Is Nothing Then
Me.Controls.Remove(requiredValidate)
requiredValidate = Nothing
End If
End If
Catch
_isRequired = False
If Me.EnableViewState Then
ViewState("IsRequired") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(" *")> _
Public Property RequiredText() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredText") Is Nothing Then
Return Convert.ToString(ViewState("RequiredText"))
Else
Return _requiredText
End If
Else
Return _requiredText
End If
End Get
Set(ByVal Value As String)
Try
_requiredText = Value
If Me.EnableViewState Then
ViewState("RequiredText") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Text = _requiredText
End If
Catch
_requiredText = String.Empty
If Me.EnableViewState Then
ViewState("RequiredText") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredShowTextAlways() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredShowTextAlways") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredShowTextAlways"))
Else
Return _requiredShowTextAlways
End If
Else
Return _requiredShowTextAlways
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredShowTextAlways = Value
If Me.EnableViewState Then
ViewState("RequiredShowTextAlways") = Value
End If
Catch
_requiredShowTextAlways = True
If Me.EnableViewState Then
ViewState("RequiredShowTextAlways") = True
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(ValidatorDisplay.Static)> _
Public Property RequiredDisplay() As ValidatorDisplay
Get
If Me.EnableViewState Then
If Not ViewState("RequiredDisplay") Is Nothing Then
Return CType(ViewState("RequiredDisplay"), ValidatorDisplay)
Else
Return _requiredDisplay
End If
Else
Return _requiredDisplay
End If
End Get
Set(ByVal Value As ValidatorDisplay)
Try
_requiredDisplay = Value
If Me.EnableViewState Then
ViewState("RequiredDisplay") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Display = Value
End If
Catch
_requiredDisplay = ValidatorDisplay.None
If Me.EnableViewState Then
ViewState("RequiredDisplay") = ValidatorDisplay.None
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredVisible() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredVisible") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredVisible"))
Else
Return _requiredVisible
End If
Else
Return _requiredVisible
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredVisible = Value
If Me.EnableViewState Then
ViewState("RequiredVisible") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Visible = _requiredVisible
End If
Catch
_requiredVisible = False
If Me.EnableViewState Then
ViewState("RequiredVisible") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredEnabled() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnabled") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnabled"))
Else
Return _requiredEnabled
End If
Else
Return _requiredEnabled
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnabled = Value
If Me.EnableViewState Then
ViewState("RequiredEnabled") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Enabled = _requiredEnabled
End If
Catch
_requiredEnabled = False
If Me.EnableViewState Then
ViewState("RequiredEnabled") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredEnableClientScript() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnableClientScript") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnableClientScript"))
Else
Return _requiredEnableClientScript
End If
Else
Return _requiredEnableClientScript
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnableClientScript = Value
If Me.EnableViewState Then
ViewState("RequiredEnableClientScript") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.EnableClientScript = _requiredEnableClientScript
End If
Catch
_requiredEnableClientScript = False
If Me.EnableViewState Then
ViewState("RequiredEnableClientScript") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property RequiredEnableViewState() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnableViewState") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnableViewState"))
Else
Return _requiredEnableViewState
End If
Else
Return _requiredEnableViewState
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnableViewState = Value
If Me.EnableViewState Then
ViewState("RequiredEnableViewState") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.EnableViewState = _requiredEnableViewState
End If
Catch
_requiredEnableViewState = False
If Me.EnableViewState Then
ViewState("RequiredEnableViewState") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue("")> _
Public Property RequiredCSSClass() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredCssClass") Is Nothing Then
Return Convert.ToString(ViewState("RequiredCssClass"))
Else
Return _requiredCssClass
End If
Else
Return _requiredCssClass
End If
End Get
Set(ByVal Value As String)
Try
_requiredCssClass = Value
If Me.EnableViewState Then
ViewState("RequiredCssClass") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.CssClass = _requiredCssClass
End If
Catch
_requiredCssClass = String.Empty
If Me.EnableViewState Then
ViewState("RequiredCssClass") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(ValidatorDisplay.Static)> _
Public Property TypeDisplay() As ValidatorDisplay
Get
If Me.EnableViewState Then
If Not ViewState("TypeDisplay") Is Nothing Then
Return CType(ViewState("TypeDisplay"), ValidatorDisplay)
Else
Return _typeDisplay
End If
Else
Return _typeDisplay
End If
End Get
Set(ByVal Value As ValidatorDisplay)
Try
_typeDisplay = Value
If Me.EnableViewState Then
ViewState("TypeDisplay") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.Display = _typeDisplay
End If
Catch
_typeDisplay = ValidatorDisplay.None
If Me.EnableViewState Then
ViewState("TypeDisplay") = ValidatorDisplay.None
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property TypeVisible() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("TypeVisible") Is Nothing Then
Return Convert.ToBoolean(ViewState("TypeVisible"))
Else
Return _typeVisible
End If
Else
Return _typeVisible
End If
End Get
Set(ByVal Value As Boolean)
Try
_typeVisible = Value
If Me.EnableViewState Then
ViewState("TypeVisible") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.Visible = _typeVisible
End If
Catch
_typeVisible = False
If Me.EnableViewState Then
ViewState("TypeVisible") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property TypeEnabled() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("TypeEnabled") Is Nothing Then
Return Convert.ToBoolean(ViewState("TypeEnabled"))
Else
Return _typeEnabled
End If
Else
Return _typeEnabled
End If
End Get
Set(ByVal Value As Boolean)
Try
_typeEnabled = Value
If Me.EnableViewState Then
ViewState("TypeEnabled") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.Enabled = _typeEnabled
End If
Catch
_typeEnabled = False
If Me.EnableViewState Then
ViewState("TypeEnabled") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property TypeEnableClientScript() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("TypeEnableClientScript") Is Nothing Then
Return Convert.ToBoolean(ViewState("TypeEnableClientScript"))
Else
Return _typeEnableClientScript
End If
Else
Return _typeEnableClientScript
End If
End Get
Set(ByVal Value As Boolean)
Try
_typeEnableClientScript = Value
If Me.EnableViewState Then
ViewState("TypeEnableClientScript") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.EnableClientScript = _typeEnableClientScript
End If
Catch
_typeEnableClientScript = False
If Me.EnableViewState Then
ViewState("TypeEnableClientScript") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property TypeEnableViewState() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("TypeEnableViewState") Is Nothing Then
Return Convert.ToBoolean(ViewState("TypeEnableViewState"))
Else
Return _typeEnableViewState
End If
Else
Return _typeEnableViewState
End If
End Get
Set(ByVal Value As Boolean)
Try
_typeEnableViewState = Value
If Me.EnableViewState Then
ViewState("TypeEnableViewState") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.EnableViewState = _typeEnableViewState
End If
Catch
_typeEnableViewState = False
If Me.EnableViewState Then
ViewState("TypeEnableViewState") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue("")> _
Public Property TypeCssClass() As String
Get
If Me.EnableViewState Then
If Not ViewState("TypeCssClass") Is Nothing Then
Return Convert.ToString(ViewState("TypeCssClass"))
Else
Return _typeCssClass
End If
Else
Return _typeCssClass
End If
End Get
Set(ByVal Value As String)
Try
_typeCssClass = Value
If Me.EnableViewState Then
ViewState("TypeCssClass") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.CssClass = _typeCssClass
End If
Catch
_typeCssClass = String.Empty
If Me.EnableViewState Then
ViewState("TypeCssClass") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue("")> _
Public Property TypeSpecialChars() As String
Get
If Me.EnableViewState Then
If Not ViewState("TypeSpecialChars") Is Nothing Then
Return Convert.ToString(ViewState("TypeSpecialChars"))
Else
Return _typeSpecialChars
End If
Else
Return _typeSpecialChars
End If
End Get
Set(ByVal Value As String)
Try
_typeSpecialChars = Value
If Me.EnableViewState Then
ViewState("TypeSpecialChars") = Value
End If
If Not regExpValidate Is Nothing Then
If _textType = ENums.TextType.AlphanumericSpecialChars Then
regExpValidate.ValidationExpression = "[a-zA-Z0-9" & _typeSpecialChars & "]*"
End If
End If
Catch
_typeSpecialChars = String.Empty
If Me.EnableViewState Then
ViewState("TypeSpecialChars") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(" Is Invalid")> _
Public Property TypeErrorMessage() As String
Get
If Me.EnableViewState Then
If Not ViewState("TypeErrorMessage") Is Nothing Then
Return Convert.ToString(ViewState("TypeErrorMessage"))
Else
Return _typeErrorMessage
End If
Else
Return _typeErrorMessage
End If
End Get
Set(ByVal Value As String)
Try
_typeErrorMessage = Value
If Me.EnableViewState Then
ViewState("TypeErrorMessage") = Value
End If
If Not regExpValidate Is Nothing Then
regExpValidate.ErrorMessage = _typeErrorMessage
End If
Catch
_typeErrorMessage = String.Empty
If Me.EnableViewState Then
ViewState("TypeErrorMessage") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(ENums.TextType.All)> _
Public Property TextType() As ENums.TextType
Get
If Me.EnableViewState Then
If Not ViewState("TextType") Is Nothing Then
Return CType(ViewState("TextType"), ENums.TextType)
Else
Return _textType
End If
Else
Return _textType
End If
End Get
Set(ByVal Value As ENums.TextType)
Try
_textType = Value
If Me.EnableViewState Then
ViewState("TextType") = Value
End If
SetRegEx(Value)
Catch
_textType = ENums.TextType.All
If Me.EnableViewState Then
ViewState("TextType") = ENums.TextType.All
End If
End Try
End Set
End Property
#End Region
#End Region
#Region "Methods/Functions/Sub"
Private Sub SetRegEx(ByVal Value As ENums.TextType)
If Value <> ENums.TextType.All Then
If regExpValidate Is Nothing Then
regExpValidate = New RegularExpressionValidator
regExpValidate.ControlToValidate = Me.ClientID
Me.Controls.Add(regExpValidate)
End If
regExpValidate.CssClass = _typeCssClass
regExpValidate.Display = _typeDisplay
regExpValidate.EnableClientScript = _typeEnableClientScript
regExpValidate.Enabled = _typeEnabled
regExpValidate.EnableViewState = _typeEnableViewState
regExpValidate.ErrorMessage = _typeErrorMessage
regExpValidate.Text = _typeText
Select Case Value
Case ENums.TextType.Alphabhets
regExpValidate.ValidationExpression = "[a-zA-Z]*"
Case ENums.TextType.Alphanumeric
regExpValidate.ValidationExpression = "[a-zA-Z0-9]*"
Case ENums.TextType.AlphanumericSpecialChars
regExpValidate.ValidationExpression = "[a-zA-Z0-9" & _typeSpecialChars & "]*"
Case ENums.TextType.Decimals
regExpValidate.ValidationExpression = "\d*\.{0,1}\d+"
Case ENums.TextType.Email
regExpValidate.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
Case ENums.TextType.Numeric
regExpValidate.ValidationExpression = "\d*"
Case Else
Me.Controls.Remove(regExpValidate)
regExpValidate = Nothing
End Select
Else
If Not regExpValidate Is Nothing Then
Me.Controls.Remove(regExpValidate)
regExpValidate = Nothing
End If
End If
End Sub
#End Region
#Region "Overrides"
Protected Overrides Sub OnInit(ByVal e As EventArgs)
MyBase.OnInit(e)
End Sub
Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
If Me.ReadOnly Then
_isRequired = False
_textType = ENums.TextType.All
If Not requiredValidate Is Nothing Then
Me.Controls.Remove(requiredValidate)
requiredValidate = Nothing
End If
If Not regExpValidate Is Nothing Then
Me.Controls.Remove(regExpValidate)
regExpValidate = Nothing
End If
' to make it look like a label
Me.BorderWidth = WebControls.Unit.Pixel(0)
MyBase.Render(output)
'output.Write("<span id=""" & Me.ClientID & """>" & Me.Text & "</span>")
Else
MyBase.Render(output)
If Not requiredValidate Is Nothing Then
If Me._requiredShowTextAlways Then
If Me._requiredCssClass.Length > 0 Then
output.Write(HtmlTextWriter.SpaceChar)
output.Write("<span class=""" & Me._requiredCssClass & """>" & Me._requiredText & "</span>")
Else
output.Write(HtmlTextWriter.SpaceChar)
output.Write("<span style=""color:Red"">" & Me._requiredText & "</span>")
End If
requiredValidate.Text = String.Empty
requiredValidate.Display = ValidatorDisplay.None
End If
If String.Compare(requiredValidate.ControlToValidate, String.Empty, False) = 0 Then
requiredValidate.ControlToValidate = Me.ClientID
End If
requiredValidate.RenderControl(output)
End If
If Not regExpValidate Is Nothing Then
If String.Compare(regExpValidate.ControlToValidate, String.Empty, False) = 0 Then
regExpValidate.ControlToValidate = Me.ClientID
End If
regExpValidate.RenderControl(output)
End If
End If
End Sub
Protected Overrides Sub AddAttributesToRender(ByVal writer As System.Web.UI.HtmlTextWriter)
MyBase.AddAttributesToRender(writer)
' this is added to trim values in text areas to max length
If Me.MaxLength > 0 And Me.TextMode = TextBoxMode.MultiLine Then
writer.AddAttribute("onblur", _
"this.value = this.value.slice(0," & Me.MaxLength & ");")
End If
End Sub
Protected Overrides Sub LoadViewState(ByVal savedState As Object)
If Not savedState Is Nothing Then
MyBase.LoadViewState(savedState)
Me.IsRequired = Me.IsRequired
End If
End Sub
#End Region
End Class
Public Class ENums
Public Enum TextType
All
Alphabhets
Alphanumeric
AlphanumericSpecialChars
Numeric
Decimals
End Enum
End Class
Custom drop down list
Drop down box that has autocomplete option
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Text
<DefaultProperty("DataSource"), ToolboxData("<{0}:DropDownList runat=server></{0}:DropDownList>")> _
Public Class DropDownList
Inherits System.Web.UI.WebControls.DropDownList
#Region "Private/Shared variables"
'required field validator properties
Private _isRequired As Boolean
Private _requiredErrorMessage As String = " Is Required"
Private _requiredText As String = " *"
Private _requiredDisplay As ValidatorDisplay = ValidatorDisplay.Static
Private _requiredVisible As Boolean = True
Private _requiredEnabled As Boolean = True
Private _requiredEnableClientScript As Boolean = True
Private _requiredEnableViewState As Boolean
Private _requiredCssClass As String = String.Empty
Private _requiredShowTextAlways As Boolean = True
' private controls
Private requiredValidate As RequiredFieldValidator
' private variables for key press function
Private Shared functionName As String = "DropDownList_onkeypress"
Private _caseSensitiveKey As Boolean = False
#End Region
#Region "Properties"
#Region "Property overrides"
<Bindable(True), Category("KeyPress"), DefaultValue(False)> _
Public Overridable Property CaseSensitiveKey() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("CaseSensitiveKey") Is Nothing Then
Return Convert.ToBoolean(ViewState("CaseSensitiveKey"))
Else
Return _caseSensitiveKey
End If
Else
Return _caseSensitiveKey
End If
End Get
Set(ByVal Value As Boolean)
_caseSensitiveKey = Value
If Me.EnableViewState Then
ViewState("CaseSensitiveKey") = Value
End If
End Set
End Property
#End Region
#Region "Custom properties"
<Bindable(True), Category("Validate"), DefaultValue(" Is Required")> _
Public Property RequiredErrorMessage() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredErrorMessage") Is Nothing Then
Return Convert.ToString(ViewState("RequiredErrorMessage"))
Else
Return _requiredErrorMessage
End If
Else
Return _requiredErrorMessage
End If
End Get
Set(ByVal Value As String)
Try
_requiredErrorMessage = Value
If Me.EnableViewState Then
ViewState("RequiredErrorMessage") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.ErrorMessage = Value
End If
Catch
_requiredErrorMessage = String.Empty
If Me.EnableViewState Then
ViewState("RequiredErrorMessage") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property IsRequired() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("IsRequired") Is Nothing Then
Return Convert.ToBoolean(ViewState("IsRequired"))
Else
Return _isRequired
End If
Else
Return _isRequired
End If
End Get
Set(ByVal Value As Boolean)
Try
_isRequired = Value
If Me.EnableViewState Then
ViewState("IsRequired") = Value
End If
If Value Then
If requiredValidate Is Nothing Then
requiredValidate = New RequiredFieldValidator
requiredValidate.ControlToValidate = Me.UniqueID
requiredValidate.Display = _requiredDisplay
requiredValidate.ErrorMessage = RequiredErrorMessage
requiredValidate.Text = _requiredText
requiredValidate.EnableClientScript = _requiredEnableClientScript
requiredValidate.Enabled = _requiredEnabled
requiredValidate.Visible = _requiredVisible
requiredValidate.EnableViewState = _requiredEnableViewState
requiredValidate.CssClass = _requiredCssClass
Me.Controls.Add(requiredValidate)
End If
Else
If Not requiredValidate Is Nothing Then
Me.Controls.Remove(requiredValidate)
requiredValidate = Nothing
End If
End If
Catch
_isRequired = False
If Me.EnableViewState Then
ViewState("IsRequired") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(" *")> _
Public Property RequiredText() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredText") Is Nothing Then
Return Convert.ToString(ViewState("RequiredText"))
Else
Return _requiredText
End If
Else
Return _requiredText
End If
End Get
Set(ByVal Value As String)
Try
_requiredText = Value
If Me.EnableViewState Then
ViewState("RequiredText") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Text = _requiredText
End If
Catch
_requiredText = String.Empty
If Me.EnableViewState Then
ViewState("RequiredText") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredShowTextAlways() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredShowTextAlways") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredShowTextAlways"))
Else
Return _requiredShowTextAlways
End If
Else
Return _requiredShowTextAlways
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredShowTextAlways = Value
If Me.EnableViewState Then
ViewState("RequiredShowTextAlways") = Value
End If
Catch
_requiredShowTextAlways = True
If Me.EnableViewState Then
ViewState("RequiredShowTextAlways") = True
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(ValidatorDisplay.Static)> _
Public Property RequiredDisplay() As ValidatorDisplay
Get
If Me.EnableViewState Then
If Not ViewState("RequiredDisplay") Is Nothing Then
Return CType(ViewState("RequiredDisplay"), ValidatorDisplay)
Else
Return _requiredDisplay
End If
Else
Return _requiredDisplay
End If
End Get
Set(ByVal Value As ValidatorDisplay)
Try
_requiredDisplay = Value
If Me.EnableViewState Then
ViewState("RequiredDisplay") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Display = Value
End If
Catch
_requiredDisplay = ValidatorDisplay.None
If Me.EnableViewState Then
ViewState("RequiredDisplay") = ValidatorDisplay.None
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredVisible() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredVisible") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredVisible"))
Else
Return _requiredVisible
End If
Else
Return _requiredVisible
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredVisible = Value
If Me.EnableViewState Then
ViewState("RequiredVisible") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Visible = _requiredVisible
End If
Catch
_requiredVisible = False
If Me.EnableViewState Then
ViewState("RequiredVisible") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredEnabled() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnabled") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnabled"))
Else
Return _requiredEnabled
End If
Else
Return _requiredEnabled
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnabled = Value
If Me.EnableViewState Then
ViewState("RequiredEnabled") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Enabled = _requiredEnabled
End If
Catch
_requiredEnabled = False
If Me.EnableViewState Then
ViewState("RequiredEnabled") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredEnableClientScript() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnableClientScript") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnableClientScript"))
Else
Return _requiredEnableClientScript
End If
Else
Return _requiredEnableClientScript
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnableClientScript = Value
If Me.EnableViewState Then
ViewState("RequiredEnableClientScript") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.EnableClientScript = _requiredEnableClientScript
End If
Catch
_requiredEnableClientScript = False
If Me.EnableViewState Then
ViewState("RequiredEnableClientScript") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property RequiredEnableViewState() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnableViewState") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnableViewState"))
Else
Return _requiredEnableViewState
End If
Else
Return _requiredEnableViewState
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnableViewState = Value
If Me.EnableViewState Then
ViewState("RequiredEnableViewState") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.EnableViewState = _requiredEnableViewState
End If
Catch
_requiredEnableViewState = False
If Me.EnableViewState Then
ViewState("RequiredEnableViewState") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue("")> _
Public Property RequiredCSSClass() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredCssClass") Is Nothing Then
Return Convert.ToString(ViewState("RequiredCssClass"))
Else
Return _requiredCssClass
End If
Else
Return _requiredCssClass
End If
End Get
Set(ByVal Value As String)
Try
_requiredCssClass = Value
If Me.EnableViewState Then
ViewState("RequiredCssClass") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.CssClass = _requiredCssClass
End If
Catch
_requiredCssClass = String.Empty
If Me.EnableViewState Then
ViewState("RequiredCssClass") = String.Empty
End If
End Try
End Set
End Property
#End Region
#End Region
#Region "Overrides"
Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
If Not Me.Enabled Then
Me.BorderWidth = WebControls.Unit.Pixel(0)
End If
MyBase.Render(output)
If Not requiredValidate Is Nothing Then
If Me._requiredShowTextAlways Then
If Me._requiredCssClass.Length > 0 Then
output.Write(HtmlTextWriter.SpaceChar)
output.Write("<span class=""" & Me._requiredCssClass & """>" & Me._requiredText & "</span>")
Else
output.Write(HtmlTextWriter.SpaceChar)
output.Write("<span style=""color:Red"">" & Me._requiredText & "</span>")
End If
requiredValidate.Text = String.Empty
requiredValidate.Display = ValidatorDisplay.None
End If
requiredValidate.RenderControl(output)
End If
End Sub
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e) ' call the base class method
' define the client-side script
Dim script As StringBuilder = New StringBuilder(500)
script.Append("<script language=" & Chr(34) & "javascript" & Chr(34) & " " & vbCrLf)
script.Append("type=" & Chr(34) & "text/javascript" & Chr(34) & ">" & vbCrLf)
script.Append("function " & functionName & " (dropdownlist,caseSensitive) {" & vbCrLf)
script.Append(" // check the keypressBuffer attribute is defined on the dropdownlist" & vbCrLf)
script.Append(" var undefined; " & vbCrLf)
script.Append(" if (dropdownlist.keypressBuffer == undefined) { " & vbCrLf)
script.Append(" dropdownlist.keypressBuffer = ''; " & vbCrLf)
script.Append(" } " & vbCrLf)
script.Append(" // get the key that was pressed " & vbCrLf)
script.Append(" var key = String.fromCharCode(window.event.keyCode); " & vbCrLf)
script.Append(" dropdownlist.keypressBuffer += key;" & vbCrLf)
script.Append(" if (!caseSensitive) {" & vbCrLf)
script.Append(" // convert buffer to lowercase" & vbCrLf)
script.Append(" dropdownlist.keypressBuffer = dropdownlist.keypressBuffer.toLowerCase();" & vbCrLf)
script.Append(" }" & vbCrLf)
script.Append(" // find if it is the start of any of the options " & vbCrLf)
script.Append(" var optionsLength = dropdownlist.options.length; " & vbCrLf)
script.Append(" for (var n=0; n < optionsLength; n++) { " & vbCrLf)
script.Append(" var optionText = dropdownlist.options[n].text; " & vbCrLf)
script.Append(" if (!caseSensitive) {" & vbCrLf)
script.Append(" optionText = optionText.toLowerCase();" & vbCrLf)
script.Append(" }" & vbCrLf)
script.Append(" if (optionText.indexOf(dropdownlist.keypressBuffer,0) == 0) { " & vbCrLf)
script.Append(" dropdownlist.selectedIndex = n; " & vbCrLf)
script.Append(" return false; // cancel the default behavior since " & vbCrLf)
script.Append(" // we have selected our own value " & vbCrLf)
script.Append(" } " & vbCrLf)
script.Append(" } " & vbCrLf)
script.Append(" // reset initial key to be inline with default behavior " & vbCrLf)
script.Append(" dropdownlist.keypressBuffer = key; " & vbCrLf)
script.Append(" return true; // give default behavior " & vbCrLf)
script.Append("} " & vbCrLf)
script.Append("</script>")
' register the client-side script block
Me.Page.RegisterClientScriptBlock(functionName, script.ToString())
' add to the onkeypress event
Me.Attributes.Add("onkeypress", "return " + functionName + "(this," + _caseSensitiveKey.ToString().ToLower() + ")")
End Sub
Protected Overrides Function CreateControlCollection() As System.Web.UI.ControlCollection
Return New ControlCollection(Me)
End Function
Protected Overrides Sub LoadViewState(ByVal savedState As Object)
If Not savedState Is Nothing Then
MyBase.LoadViewState(savedState)
Me.IsRequired = Me.IsRequired
End If
End Sub
#End Region
End Class
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Text
<DefaultProperty("DataSource"), ToolboxData("<{0}:DropDownList runat=server></{0}:DropDownList>")> _
Public Class DropDownList
Inherits System.Web.UI.WebControls.DropDownList
#Region "Private/Shared variables"
'required field validator properties
Private _isRequired As Boolean
Private _requiredErrorMessage As String = " Is Required"
Private _requiredText As String = " *"
Private _requiredDisplay As ValidatorDisplay = ValidatorDisplay.Static
Private _requiredVisible As Boolean = True
Private _requiredEnabled As Boolean = True
Private _requiredEnableClientScript As Boolean = True
Private _requiredEnableViewState As Boolean
Private _requiredCssClass As String = String.Empty
Private _requiredShowTextAlways As Boolean = True
' private controls
Private requiredValidate As RequiredFieldValidator
' private variables for key press function
Private Shared functionName As String = "DropDownList_onkeypress"
Private _caseSensitiveKey As Boolean = False
#End Region
#Region "Properties"
#Region "Property overrides"
<Bindable(True), Category("KeyPress"), DefaultValue(False)> _
Public Overridable Property CaseSensitiveKey() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("CaseSensitiveKey") Is Nothing Then
Return Convert.ToBoolean(ViewState("CaseSensitiveKey"))
Else
Return _caseSensitiveKey
End If
Else
Return _caseSensitiveKey
End If
End Get
Set(ByVal Value As Boolean)
_caseSensitiveKey = Value
If Me.EnableViewState Then
ViewState("CaseSensitiveKey") = Value
End If
End Set
End Property
#End Region
#Region "Custom properties"
<Bindable(True), Category("Validate"), DefaultValue(" Is Required")> _
Public Property RequiredErrorMessage() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredErrorMessage") Is Nothing Then
Return Convert.ToString(ViewState("RequiredErrorMessage"))
Else
Return _requiredErrorMessage
End If
Else
Return _requiredErrorMessage
End If
End Get
Set(ByVal Value As String)
Try
_requiredErrorMessage = Value
If Me.EnableViewState Then
ViewState("RequiredErrorMessage") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.ErrorMessage = Value
End If
Catch
_requiredErrorMessage = String.Empty
If Me.EnableViewState Then
ViewState("RequiredErrorMessage") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property IsRequired() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("IsRequired") Is Nothing Then
Return Convert.ToBoolean(ViewState("IsRequired"))
Else
Return _isRequired
End If
Else
Return _isRequired
End If
End Get
Set(ByVal Value As Boolean)
Try
_isRequired = Value
If Me.EnableViewState Then
ViewState("IsRequired") = Value
End If
If Value Then
If requiredValidate Is Nothing Then
requiredValidate = New RequiredFieldValidator
requiredValidate.ControlToValidate = Me.UniqueID
requiredValidate.Display = _requiredDisplay
requiredValidate.ErrorMessage = RequiredErrorMessage
requiredValidate.Text = _requiredText
requiredValidate.EnableClientScript = _requiredEnableClientScript
requiredValidate.Enabled = _requiredEnabled
requiredValidate.Visible = _requiredVisible
requiredValidate.EnableViewState = _requiredEnableViewState
requiredValidate.CssClass = _requiredCssClass
Me.Controls.Add(requiredValidate)
End If
Else
If Not requiredValidate Is Nothing Then
Me.Controls.Remove(requiredValidate)
requiredValidate = Nothing
End If
End If
Catch
_isRequired = False
If Me.EnableViewState Then
ViewState("IsRequired") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(" *")> _
Public Property RequiredText() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredText") Is Nothing Then
Return Convert.ToString(ViewState("RequiredText"))
Else
Return _requiredText
End If
Else
Return _requiredText
End If
End Get
Set(ByVal Value As String)
Try
_requiredText = Value
If Me.EnableViewState Then
ViewState("RequiredText") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Text = _requiredText
End If
Catch
_requiredText = String.Empty
If Me.EnableViewState Then
ViewState("RequiredText") = String.Empty
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredShowTextAlways() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredShowTextAlways") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredShowTextAlways"))
Else
Return _requiredShowTextAlways
End If
Else
Return _requiredShowTextAlways
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredShowTextAlways = Value
If Me.EnableViewState Then
ViewState("RequiredShowTextAlways") = Value
End If
Catch
_requiredShowTextAlways = True
If Me.EnableViewState Then
ViewState("RequiredShowTextAlways") = True
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(ValidatorDisplay.Static)> _
Public Property RequiredDisplay() As ValidatorDisplay
Get
If Me.EnableViewState Then
If Not ViewState("RequiredDisplay") Is Nothing Then
Return CType(ViewState("RequiredDisplay"), ValidatorDisplay)
Else
Return _requiredDisplay
End If
Else
Return _requiredDisplay
End If
End Get
Set(ByVal Value As ValidatorDisplay)
Try
_requiredDisplay = Value
If Me.EnableViewState Then
ViewState("RequiredDisplay") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Display = Value
End If
Catch
_requiredDisplay = ValidatorDisplay.None
If Me.EnableViewState Then
ViewState("RequiredDisplay") = ValidatorDisplay.None
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredVisible() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredVisible") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredVisible"))
Else
Return _requiredVisible
End If
Else
Return _requiredVisible
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredVisible = Value
If Me.EnableViewState Then
ViewState("RequiredVisible") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Visible = _requiredVisible
End If
Catch
_requiredVisible = False
If Me.EnableViewState Then
ViewState("RequiredVisible") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredEnabled() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnabled") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnabled"))
Else
Return _requiredEnabled
End If
Else
Return _requiredEnabled
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnabled = Value
If Me.EnableViewState Then
ViewState("RequiredEnabled") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.Enabled = _requiredEnabled
End If
Catch
_requiredEnabled = False
If Me.EnableViewState Then
ViewState("RequiredEnabled") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(True)> _
Public Property RequiredEnableClientScript() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnableClientScript") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnableClientScript"))
Else
Return _requiredEnableClientScript
End If
Else
Return _requiredEnableClientScript
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnableClientScript = Value
If Me.EnableViewState Then
ViewState("RequiredEnableClientScript") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.EnableClientScript = _requiredEnableClientScript
End If
Catch
_requiredEnableClientScript = False
If Me.EnableViewState Then
ViewState("RequiredEnableClientScript") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue(False)> _
Public Property RequiredEnableViewState() As Boolean
Get
If Me.EnableViewState Then
If Not ViewState("RequiredEnableViewState") Is Nothing Then
Return Convert.ToBoolean(ViewState("RequiredEnableViewState"))
Else
Return _requiredEnableViewState
End If
Else
Return _requiredEnableViewState
End If
End Get
Set(ByVal Value As Boolean)
Try
_requiredEnableViewState = Value
If Me.EnableViewState Then
ViewState("RequiredEnableViewState") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.EnableViewState = _requiredEnableViewState
End If
Catch
_requiredEnableViewState = False
If Me.EnableViewState Then
ViewState("RequiredEnableViewState") = False
End If
End Try
End Set
End Property
<Bindable(True), Category("Validate"), DefaultValue("")> _
Public Property RequiredCSSClass() As String
Get
If Me.EnableViewState Then
If Not ViewState("RequiredCssClass") Is Nothing Then
Return Convert.ToString(ViewState("RequiredCssClass"))
Else
Return _requiredCssClass
End If
Else
Return _requiredCssClass
End If
End Get
Set(ByVal Value As String)
Try
_requiredCssClass = Value
If Me.EnableViewState Then
ViewState("RequiredCssClass") = Value
End If
If Not requiredValidate Is Nothing Then
requiredValidate.CssClass = _requiredCssClass
End If
Catch
_requiredCssClass = String.Empty
If Me.EnableViewState Then
ViewState("RequiredCssClass") = String.Empty
End If
End Try
End Set
End Property
#End Region
#End Region
#Region "Overrides"
Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
If Not Me.Enabled Then
Me.BorderWidth = WebControls.Unit.Pixel(0)
End If
MyBase.Render(output)
If Not requiredValidate Is Nothing Then
If Me._requiredShowTextAlways Then
If Me._requiredCssClass.Length > 0 Then
output.Write(HtmlTextWriter.SpaceChar)
output.Write("<span class=""" & Me._requiredCssClass & """>" & Me._requiredText & "</span>")
Else
output.Write(HtmlTextWriter.SpaceChar)
output.Write("<span style=""color:Red"">" & Me._requiredText & "</span>")
End If
requiredValidate.Text = String.Empty
requiredValidate.Display = ValidatorDisplay.None
End If
requiredValidate.RenderControl(output)
End If
End Sub
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e) ' call the base class method
' define the client-side script
Dim script As StringBuilder = New StringBuilder(500)
script.Append("<script language=" & Chr(34) & "javascript" & Chr(34) & " " & vbCrLf)
script.Append("type=" & Chr(34) & "text/javascript" & Chr(34) & ">" & vbCrLf)
script.Append("function " & functionName & " (dropdownlist,caseSensitive) {" & vbCrLf)
script.Append(" // check the keypressBuffer attribute is defined on the dropdownlist" & vbCrLf)
script.Append(" var undefined; " & vbCrLf)
script.Append(" if (dropdownlist.keypressBuffer == undefined) { " & vbCrLf)
script.Append(" dropdownlist.keypressBuffer = ''; " & vbCrLf)
script.Append(" } " & vbCrLf)
script.Append(" // get the key that was pressed " & vbCrLf)
script.Append(" var key = String.fromCharCode(window.event.keyCode); " & vbCrLf)
script.Append(" dropdownlist.keypressBuffer += key;" & vbCrLf)
script.Append(" if (!caseSensitive) {" & vbCrLf)
script.Append(" // convert buffer to lowercase" & vbCrLf)
script.Append(" dropdownlist.keypressBuffer = dropdownlist.keypressBuffer.toLowerCase();" & vbCrLf)
script.Append(" }" & vbCrLf)
script.Append(" // find if it is the start of any of the options " & vbCrLf)
script.Append(" var optionsLength = dropdownlist.options.length; " & vbCrLf)
script.Append(" for (var n=0; n < optionsLength; n++) { " & vbCrLf)
script.Append(" var optionText = dropdownlist.options[n].text; " & vbCrLf)
script.Append(" if (!caseSensitive) {" & vbCrLf)
script.Append(" optionText = optionText.toLowerCase();" & vbCrLf)
script.Append(" }" & vbCrLf)
script.Append(" if (optionText.indexOf(dropdownlist.keypressBuffer,0) == 0) { " & vbCrLf)
script.Append(" dropdownlist.selectedIndex = n; " & vbCrLf)
script.Append(" return false; // cancel the default behavior since " & vbCrLf)
script.Append(" // we have selected our own value " & vbCrLf)
script.Append(" } " & vbCrLf)
script.Append(" } " & vbCrLf)
script.Append(" // reset initial key to be inline with default behavior " & vbCrLf)
script.Append(" dropdownlist.keypressBuffer = key; " & vbCrLf)
script.Append(" return true; // give default behavior " & vbCrLf)
script.Append("} " & vbCrLf)
script.Append("</script>")
' register the client-side script block
Me.Page.RegisterClientScriptBlock(functionName, script.ToString())
' add to the onkeypress event
Me.Attributes.Add("onkeypress", "return " + functionName + "(this," + _caseSensitiveKey.ToString().ToLower() + ")")
End Sub
Protected Overrides Function CreateControlCollection() As System.Web.UI.ControlCollection
Return New ControlCollection(Me)
End Function
Protected Overrides Sub LoadViewState(ByVal savedState As Object)
If Not savedState Is Nothing Then
MyBase.LoadViewState(savedState)
Me.IsRequired = Me.IsRequired
End If
End Sub
#End Region
End Class
Send mail using SMTP
following function can be added in a utility class and
can be called from the application with parameters to send email.
SMTP Server IP could be stored in web.config or database, so that
it can be changed easily.
Imports System.Web.Mail ' namespace is required for smtp mail
Public Shared Function SendMail(ByVal fromAddress As String, _
ByVal toAddress As String, ByVal ccAddress As String, _
ByVal bccAddress As String, ByVal msgSubject As String, _
ByVal msgBody As String, ByVal smtpServer As String, _
Optional ByVal msgPriority As Int32 = 0, _
Optional ByVal msgFormat As Int32 = 0) As Boolean
Dim mailMsg As MailMessage
Try
mailMsg = New MailMessage
mailMsg.From = ConvertToString(fromAddress)
mailMsg.To = ConvertToString(toAddress)
If ConvertToString(ccAddress).Length > 0 Then mailMsg.Cc = ccAddress
If ConvertToString(bccAddress).Length > 0 Then mailMsg.Bcc = bccAddress
mailMsg.Subject = ConvertToString(msgSubject)
mailMsg.Body = ConvertToString(msgBody)
If msgPriority < priority =" MailPriority.Low"> 0 Then
mailMsg.Priority = MailPriority.High
Else
mailMsg.Priority = MailPriority.Normal
End If
If msgFormat > 0 Then
mailMsg.BodyFormat = MailFormat.Html
Else
mailMsg.BodyFormat = MailFormat.Text
End If
SmtpMail.SmtpServer = smtpServer
SmtpMail.Send(mailMsg)
Return True
Catch
Return False
End Try
End Function
can be called from the application with parameters to send email.
SMTP Server IP could be stored in web.config or database, so that
it can be changed easily.
Imports System.Web.Mail ' namespace is required for smtp mail
Public Shared Function SendMail(ByVal fromAddress As String, _
ByVal toAddress As String, ByVal ccAddress As String, _
ByVal bccAddress As String, ByVal msgSubject As String, _
ByVal msgBody As String, ByVal smtpServer As String, _
Optional ByVal msgPriority As Int32 = 0, _
Optional ByVal msgFormat As Int32 = 0) As Boolean
Dim mailMsg As MailMessage
Try
mailMsg = New MailMessage
mailMsg.From = ConvertToString(fromAddress)
mailMsg.To = ConvertToString(toAddress)
If ConvertToString(ccAddress).Length > 0 Then mailMsg.Cc = ccAddress
If ConvertToString(bccAddress).Length > 0 Then mailMsg.Bcc = bccAddress
mailMsg.Subject = ConvertToString(msgSubject)
mailMsg.Body = ConvertToString(msgBody)
If msgPriority < priority =" MailPriority.Low"> 0 Then
mailMsg.Priority = MailPriority.High
Else
mailMsg.Priority = MailPriority.Normal
End If
If msgFormat > 0 Then
mailMsg.BodyFormat = MailFormat.Html
Else
mailMsg.BodyFormat = MailFormat.Text
End If
SmtpMail.SmtpServer = smtpServer
SmtpMail.Send(mailMsg)
Return True
Catch
Return False
End Try
End Function
String compare
Comparing strings using equal to operator is an overhead especially when you try to change case and compare, instead string.compare could be used.
Here I used ConvertToString function mentioned earlier in the blog, so it could handle null values also.
Function returns true, strings are same, else different
Public Shared Function StringCompareNoCase(ByVal object1 As Object, _
ByVal object2 As Object) As Boolean
Dim string1 As String = String.Empty
Dim string2 As String = String.Empty
Try
string1 = ConvertToString(object1)
string2 = ConvertToString(object2)
If String.Compare(string1, string2, True) = 0 Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
Public Shared Function StringCompareNoCase(ByVal string1 As String, _
ByVal string2 As String) As Boolean
Try
If String.Compare(string1, string2, True) = 0 Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
Public Shared Function StringCompare(ByVal object1 As Object, _
ByVal object2 As Object) As Boolean
Dim string1 As String = String.Empty
Dim string2 As String = String.Empty
Try
string1 = ConvertToString(object1)
string2 = ConvertToString(object2)
If String.Compare(string1, string2, False) = 0 Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
Public Shared Function StringCompare(ByVal string1 As String, _
ByVal string2 As String) As Boolean
Try
If String.Compare(string1, string2, False) = 0 Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
Here I used ConvertToString function mentioned earlier in the blog, so it could handle null values also.
Function returns true, strings are same, else different
Public Shared Function StringCompareNoCase(ByVal object1 As Object, _
ByVal object2 As Object) As Boolean
Dim string1 As String = String.Empty
Dim string2 As String = String.Empty
Try
string1 = ConvertToString(object1)
string2 = ConvertToString(object2)
If String.Compare(string1, string2, True) = 0 Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
Public Shared Function StringCompareNoCase(ByVal string1 As String, _
ByVal string2 As String) As Boolean
Try
If String.Compare(string1, string2, True) = 0 Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
Public Shared Function StringCompare(ByVal object1 As Object, _
ByVal object2 As Object) As Boolean
Dim string1 As String = String.Empty
Dim string2 As String = String.Empty
Try
string1 = ConvertToString(object1)
string2 = ConvertToString(object2)
If String.Compare(string1, string2, False) = 0 Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
Public Shared Function StringCompare(ByVal string1 As String, _
ByVal string2 As String) As Boolean
Try
If String.Compare(string1, string2, False) = 0 Then
Return True
Else
Return False
End If
Catch
Return False
End Try
End Function
Convert to boolean handling NULL
Public Shared Function ConvertToBoolean(ByVal value As Object) As Boolean
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return False
Else
Return Convert.ToBoolean(value)
End If
Catch
Return False
End Try
End Function
Public Shared Function ConvertToBoolean(ByVal value As String) As Boolean
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return False
Else
Return Convert.ToBoolean(value)
End If
Catch
Return False
End Try
End Function
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return False
Else
Return Convert.ToBoolean(value)
End If
Catch
Return False
End Try
End Function
Public Shared Function ConvertToBoolean(ByVal value As String) As Boolean
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return False
Else
Return Convert.ToBoolean(value)
End If
Catch
Return False
End Try
End Function
Convert to Double handling NULL
Public Shared Function ConvertToDouble(ByVal value As Object) As Double
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return 0
Else
Return Convert.ToDouble(value)
End If
Catch
Return 0
End Try
End Function
Public Shared Function ConvertToDouble(ByVal value As String) As Double
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return 0
Else
Return Convert.ToDouble(value)
End If
Catch
Return 0
End Try
End Function
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return 0
Else
Return Convert.ToDouble(value)
End If
Catch
Return 0
End Try
End Function
Public Shared Function ConvertToDouble(ByVal value As String) As Double
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return 0
Else
Return Convert.ToDouble(value)
End If
Catch
Return 0
End Try
End Function
Convert to Int32 handling NULL
Public Shared Function ConvertToInt32(ByVal value As Object) As Int32
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return 0
Else
Return Convert.ToInt32(value)
End If
Catch
Return 0
End Try
End Function
Public Shared Function ConvertToInt32(ByVal value As String) As Int32
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return 0
Else
Return Convert.ToInt32(value)
End If
Catch
Return 0
End Try
End Function
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return 0
Else
Return Convert.ToInt32(value)
End If
Catch
Return 0
End Try
End Function
Public Shared Function ConvertToInt32(ByVal value As String) As Int32
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return 0
Else
Return Convert.ToInt32(value)
End If
Catch
Return 0
End Try
End Function
Subscribe to:
Posts (Atom)