Thursday, June 01, 2006
IgnoreSectionHandler
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
But "Batch Build" option would not be available even if one VB.Net project is added to the solution.
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
Monday, May 22, 2006
HttpRuntime - Max request length
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
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
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
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
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
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
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
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
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
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
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
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
Convert to string handling NULL
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return String.Empty
Else
Return Convert.ToString(value).Trim()
End If
Catch
Return String.Empty
End Try
End Function
Public Shared Function ConvertToString(ByVal value As Boolean) As String
Try
Return Convert.ToString(value).Trim()
Catch
Return String.Empty
End Try
End Function
Public Shared Function ConvertToString(ByVal value As String) As String
Try
If (value Is Nothing) OrElse (value Is DBNull.Value) Then
Return String.Empty
Else
Return Convert.ToString(value).Trim()
End If
Catch
Return String.Empty
End Try
End Function
Thursday, August 25, 2005
Restricting windows close event - windows application
Heres a sample to check if the user clicks on 'X' in the right top of the window, instead of save and close button
' declare the variable in the form code behind
Private confirmClose As Boolean
Private Sub btnSaveAndClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveAndClose.Click
confirmClose = True
Me.Close()
End Sub
Private Sub DemoForm_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If Not confirmClose Then
' means the he has not clicked on trial button, but X
e.Cancel = True
' this will not allow the window to close
' add msg box to show that user has to click of
' save and close button, and cannot use 'X' to close the application
End If
End Sub
Relative path in user controls
~ indicates your app root folder
so if the control is in /mycontrols/usercontrols
u should use ~/mycontrols/usercontrols
Finding duplicates using SQL
If the primary key id is a integer based identity column, if not create a temp table with same structure and additional identity column, and use the identity column instead of primary key id
UPDATE TableName SET ErrorDescription = 'Duplicate record' WHERE PrimaryKeyId > (SELECT MIN(PrimaryKeyId) FROM TableName CheckDuplicate WHERE (CheckDuplicate.Code = TableName.Code OR CheckDuplicate.Name = TableName.Name)) AND ErrorDescription IS NULL
If records were
| PrimaryKeyId | Code | Name | ErrorDescription |
| 1 | CD1 | Name 1 | |
| 2 | CD2 | Name 2 | |
| 3 | CD1 | Name 3 | |
| 4 | CD4 | Name 1 |
They become
| PrimaryKeyId | Code | Name | ErrorDescription |
| 1 | CD1 | Name 1 | |
| 2 | CD2 | Name 2 | |
| 3 | CD1 | Name 3 | Duplicate record |
| 4 | CD4 | Name 1 | Duplicate record |