The .ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="intTextField.ascx.cs" Inherits="CharlieCustomControls.intTextField" %>
<asp:TextBox ID="_txtboxNumber" runat="server" MaxLength="5" Columns="5" />
<span id="_lblErrorStar" runat="server" visible="false">*</span>
CODE BEHIND (.ascx.cs)
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace CharlieCustomControls
{
public partial class intTextField : System.Web.UI.UserControl
{
public int DefaultNumber = 0;
public int MaxDigits = 0;
public string TextString
{
get
{
return _txtboxNumber.Text;
}
set
{
_txtboxNumber.Text = value;
}
}
public int Number
{
get
{
int NumberEntered = 0;
int.TryParse(_txtboxNumber.Text, out NumberEntered);
return NumberEntered;
}
set
{
_txtboxNumber.Text = value.ToString();
}
}
public bool EnableMaxNumberValidation = false;
public bool EnableMinNumberValidation = false;
public bool EnableNumberRequiredValidation = false;
public int MinNumber;
public int MaxNumber;
public string NotANumberErrorMessage;
public string NumberTooLargeErrorMessage;
public string NumberTooSmallErrorMessage;
public string NumberRequiredErrorMessage;
public string ErrorMarkStyle;
public bool DisplayErrorMarkOnError = false;
public bool ReplaceBlankTextWithDefaultNumber = false;
public bool Editable;
protected void Page_Load(object sender, EventArgs e)
{
if (ReplaceBlankTextWithDefaultNumber && (TextString == ""))
{
TextString = DefaultNumber.ToString();
}
if (MaxDigits > 0)
{
_txtboxNumber.MaxLength = MaxDigits;
}
_txtboxNumber.Enabled = Editable;
_lblErrorStar.Attributes.Add("class", ErrorMarkStyle);
}
public bool Validate()
{
// first validate to see if actual number is entered
int NumberEntered = DefaultNumber;
if (!(int.TryParse(_txtboxNumber.Text, out NumberEntered)))
{
if (_txtboxNumber.Text == "")
{
if (EnableNumberRequiredValidation)
{
if (DisplayErrorMarkOnError)
{
_lblErrorStar.Visible = true;
}
}
return false;
}
else
{
// not a number, return error message and mark error is set to true
if (DisplayErrorMarkOnError)
{
_lblErrorStar.Visible = true;
}
return false;
}
}
else
{
if (EnableMinNumberValidation)
{
if (NumberEntered < MinNumber)
{
if (DisplayErrorMarkOnError)
{
_lblErrorStar.Visible = true;
}
return false;
}
}
if (EnableMaxNumberValidation)
{
if (NumberEntered > MaxNumber)
{
if (DisplayErrorMarkOnError)
{
_lblErrorStar.Visible = true;
}
return false;
}
}
}
HideErrorMark();
return true;
}
public bool Validate(out string ErrorMessage)
{
// first validate to see if actual number is entered
int NumberEntered = DefaultNumber;
if (!(int.TryParse(_txtboxNumber.Text, out NumberEntered)))
{
if (_txtboxNumber.Text == "")
{
if (EnableNumberRequiredValidation)
{
if (DisplayErrorMarkOnError)
{
_lblErrorStar.Visible = true;
}
}
ErrorMessage = NumberRequiredErrorMessage;
return false;
}
else
{
// not a number, return error message and mark error is set to true
if (DisplayErrorMarkOnError)
{
_lblErrorStar.Visible = true;
}
ErrorMessage = NotANumberErrorMessage;
return false;
}
}
else
{
if (EnableMinNumberValidation)
{
if (NumberEntered < MinNumber)
{
if (DisplayErrorMarkOnError)
{
_lblErrorStar.Visible = true;
}
ErrorMessage = NumberTooSmallErrorMessage;
return false;
}
}
if (EnableMaxNumberValidation)
{
if (NumberEntered > MaxNumber)
{
if (DisplayErrorMarkOnError)
{
_lblErrorStar.Visible = true;
}
ErrorMessage = NumberTooLargeErrorMessage;
return false;
}
}
}
HideErrorMark();
ErrorMessage = string.Empty;
return true;
}
public void HideErrorMark()
{
_lblErrorStar.Visible = false;
}
public void Clear()
{
Number = 0;
HideErrorMark();
}
}
}
No comments:
Post a Comment