intTextField

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