通用类 ControlHelper 获取、绑定、校验控件值的操作方法类

/// <summary>
    /// 获取、绑定、校验控件值的操作方法类
    /// </summary>
    public class ControlHelper
    {
        /// <summary>
        /// 文本框不能为空值
        /// </summary>
        /// <param name="txt">文件框控件ID</param>
        /// <param name="txtName">文本框控件名称</param>
        /// <returns></returns>
        public static string GetErrorMessage(TextBox txt, string txtName)
        {
            if(txt.Text.Trim() == string.Empty)
                return string.Format("<li>{0}不能为空值!</li>", txtName);
            else
                return string.Empty;
        }

        /// <summary>
        /// 文本框不能为空值且不能超过允许字符
        /// </summary>
        /// <param name="txt">文本框控件ID</param>
        /// <param name="txtName">文本框控件名称</param>
        /// <param name="maxLength">最大长度</param>
        /// <returns></returns>
        public static string GetErrorMessage(TextBox txt, string txtName, int maxLength)
        {
            if(txt.Text.Trim() == string.Empty || txt.Text.Trim().Length > maxLength)
                return string.Format("<li>{0}不能为空值且不能超过{1}个字符!</li>", txtName, maxLength);
            else
                return string.Empty;
        }

        /// <summary>
        /// 文本控件值校验类型
        /// </summary>
        public enum TextValueType
        {
            /// <summary>
            /// int 类型,包括负数
            /// </summary>
            Int,
            /// <summary>
            /// 小数类型
            /// </summary>
            Decimal,
            /// <summary>
            /// 整形数字类型
            /// </summary>
            Numeric
        }

        /// <summary>
        /// 检查文本框必须为数字
        /// </summary>
        /// <param name="txt">文本框控件ID</param>
        /// <param name="txtName">文本框控件名称</param>
        /// <param name="isInt">是否为Int数字值,否则为小数值</param>
        /// <param name="isRequire">是否必须输入</param>
        /// <returns></returns>
        public static string GetErrorMessage(TextBox txt, string txtName, TextValueType tvt, bool isRequire)
        {
            if(isRequire && txt.Text.Trim() == string.Empty)
                return string.Format("<li>{0}不能为空值!</li>", txtName);

            switch(tvt)
            {
                case TextValueType.Int:
                    if(!Validator.IsInt(txt.Text.Trim()) && txt.Text.Trim() != string.Empty)
                        return string.Format("<li>{0}的值必须为Int型数字!</li>", txtName);
                    break;
                case TextValueType.Decimal:
                    if(!Validator.IsDecimal(txt.Text.Trim()) && txt.Text.Trim() != string.Empty)
                        return string.Format("<li>{0}的值必须为数字或小数且不能为负数!</li>", txtName);
                    break;
                case TextValueType.Numeric:
                    if(!Validator.IsNumeric(txt.Text.Trim()) && txt.Text.Trim() != string.Empty)
                        return string.Format("<li>{0}的值必须为整型数字!</li>", txtName);
                    break;
            }


            return string.Empty;
        }


        /// <summary>
        /// 检验下拉框必须选择索引大于第一项的值
        /// </summary>
        /// <param name="ddl"></param>
        /// <param name="ddlName"></param>
        /// <returns></returns>
        public static string GetErrorMessage(DropDownList ddl, string ddlName)
        {
            if(ddl.SelectedIndex <= 0)
                return string.Format("<li>请选择{0}!</li>", ddlName);
            else
                return string.Empty;
        }

        /// <summary>
        /// 检验多项单选框必须选择
        /// </summary>
        /// <param name="ddl"></param>
        /// <param name="ddlName"></param>
        /// <returns></returns>
        public static string GetErrorMessage(RadioButtonList rbl, string rblName)
        {
            if(rbl.SelectedIndex == -1)
                return string.Format("<li>请选择{0}!</li>", rblName);
            else
                return string.Empty;
        }



        /// <summary>
        /// 只允许上传图片
        /// </summary>
        /// <param name="upload"></param>
        /// <param name="fuName"></param>
        /// <returns></returns>
        public static string GetErrorMessage(FileUpload upload, string fuName)
        {
            if(upload.HasFile)
            {
                if(upload.PostedFile.ContentType.ToString().ToLower().IndexOf("image") == -1)
                    return string.Format("<li>上传的{0}文件格式不正确!</li>", fuName);
            }
            return string.Empty;
        }


        /// <summary>
        /// 获得文本框的数字值
        /// </summary>
        /// <param name="txt">文本框控件</param>
        /// <returns></returns>
        public static int GetIntValue(TextBox txt)
        {
            if(txt.Text.Trim() == string.Empty)
                return 0;
            try
            {
                return Convert.ToInt32(txt.Text.Trim());
            }
            catch
            {
                return 0;
            }
        }

        /// <summary>
        /// 获得下拉控件选择项索引大于0的Int值
        /// </summary>
        /// <param name="ddl"></param>
        /// <returns></returns>
        public static int GetIntValue(DropDownList ddl)
        {
            if(ddl.SelectedIndex > 0)
                return Convert.ToInt32(ddl.SelectedValue);
            else
                return 0;
        }


        /// <summary>
        /// 获得文本框的小数值
        /// </summary>
        /// <param name="txt">文本框控件</param>
        /// <param name="IsDecimal">是否为小数</param>
        /// <returns></returns>
        public static decimal GetDecimalValue(TextBox txt)
        {
            if(txt.Text.Trim() == string.Empty)
                return 0;
            try
            {
                return Convert.ToDecimal(txt.Text.Trim());
            }
            catch
            {
                return 0;
            }
        }



        /// <summary>
        /// 返回从CheckBoxList中选定的单个或多个值
        /// </summary>
        /// <param name="cbl">CheckBoxList控件名称</param>
        /// <returns>返回选定的值</returns>
        public static string GetValue(CheckBoxList cbl)
        {
            string result = string.Empty;
            for(int i = 0; i < cbl.Items.Count; i++)
            {
                if(cbl.Items[i].Selected == true)
                    result += String.Format(",{0}", cbl.Items[i].Value);
            }
            if(result != string.Empty)
                result = result.Substring(1, result.Length - 1);
            return result;
        }


        /// <summary>
        /// 从CheckBoxList中选定
        /// </summary>
        /// <param name="cbl">CheckBoxList控件名称</param>
        /// <param name="val">要选中项值,多个值以,号间隔</param>
        public static void BindValue(CheckBoxList cbl, string val)
        {
            Array.ForEach(val.Split(','),
            delegate(string s)
            {
                for(int i = 0; i < cbl.Items.Count; i++)
                    if(cbl.Items[i].Value == s)
                        cbl.Items[i].Selected = true;
            });
        }


        /// <summary>
        /// 从单选项中选定
        /// </summary>
        /// <param name="rbl">RadioButtonList控件名称</param>
        /// <param name="val">要选定的值</param>
        public static void BindValue(RadioButtonList rbl, string val)
        {
            for(int i = 0; i < rbl.Items.Count; i++)
            {
                if(rbl.Items[i].Value == val)
                    rbl.Items[i].Selected = true;
            }
        }
    }

 

posted @ 2012-08-29 15:33  暗尘掩月  阅读(680)  评论(0编辑  收藏  举报