ASP.Net

확장 클래스 Extension

캡틴노랑이 2015. 7. 31. 13:20
반응형

개발하면서 많이 사용하는 단순 반복 코드로써 프로그램 개발시 유용하게 사용할 수 있다. 

 

 

<summary>
    /// Object 확장 객체
    /// </summary>
    public static class ObjectExtention
    {
        /// <summary>
        /// null 확인용
        /// </summary>
        /// <param name="Value">대상 객체 (또는 배열)</param>
        /// <returns>null 여부</returns>
        public static bool IsNull(this object Value)
        {
            return Object.Equals(Value, null); // 단순 확인용.
        }

        /// <summary>
        /// null이 아닌지 확인용
        /// </summary>
        /// <param name="Value">대상 객체 (또는 배열)</param>
        /// <returns>null 여부</returns>
        public static bool IsNotNull(this object Value)
        {
            return Object.Equals(Value, null) == false; // 단순 확인용.
        }

        /// <summary>
        /// NULL 또는 공백 확인
        /// </summary>
        /// <param name="Value">대상 문자열</param>
        /// <returns>NULL 또는 공백 여부</returns>
        public static bool IsNullOrEmpty(this string Value)
        {
            return String.IsNullOrEmpty(Value); // 단순 확인용.
        }

        /// <summary>
        /// 공백이 아님 여부를 확인
        /// </summary>
        /// <param name="Value">대상 문자열</param>
        /// <returns>공백이 아님 여부</returns>
        public static bool IsNotEmpty(this string Value)
        {
            return String.IsNullOrEmpty(Value) == false; // 단순 확인용.
        }
        /// <summary>
        /// 공백이 아님 여부를 확인
        /// </summary>
        /// <param name="Value">대상 문자열</param>
        /// <returns>공백이 아님 여부</returns>
        public static bool IsNotEmptyWithTrim(this string Value)
        {
            if (String.IsNullOrEmpty(Value))
                return false;
            string temp = Value.Trim();
            return temp.Length > 0;
        }

        /// <summary>
        /// GUID 문자열인지 확인
        /// </summary>
        /// <param name="Value">대상 문자열</param>
        /// <returns>GUID 여부</returns>
        public static bool IsGuid(this string Value)
        {
            Guid temp = Guid.Empty;
            if (Guid.TryParse(Value, out temp))
                return true;
            else
                return false;
        }

        /// <summary>
        /// 일반 문자열을 Html로 인코딩 된 문자열로
        /// </summary>
        /// <param name="Value">대상 문자열</param>
        /// <returns>변경된 문자열</returns>
        public static string ToStringHtml(this string Value, bool EmptyToHtmlSpec = false)
        {
            if (Value.IsNull())
                return Value;
            else if (Value == "")
            {
                if (EmptyToHtmlSpec)
                {
                    return "&nbsp;";
                }
                else
                {
                    return "";
                }
            }


            return System.Web.HttpUtility.HtmlEncode(Value);
        }

        /// <summary>
        /// 널일경우 공백 문자로
        /// </summary>
        /// <returns>null이 아닌 문자열</returns>
        public static string ToStringNotNull(this string Source)
        {
            if (String.IsNullOrEmpty(Source))
                return "";
            else
                return Source;
        }

        /// <summary>
        /// 널일경우 공백 문자로
        /// </summary>
        /// <returns>null이 아닌 문자열</returns>
        public static string ToStringNotNull(this int? Source)
        {
            if (Source.HasValue)
                return Source.Value.ToString();
            else
                return "";
        }

        /// <summary>
        /// 문자열을 숫자형태으로 변환
        /// </summary>
        /// <param name="Source">대상 문자열</param>
        /// <returns>변환된 숫자</returns>
        public static int? ToNullableInt(this string Source)
        {
            if (String.IsNullOrEmpty(Source))
                return null;
            else
            {
                int returnvalue = 0;
                if (int.TryParse(Source, out returnvalue))
                {
                    return returnvalue;
                }
                else
                {
                    return null;
                }
            }
        }

        /// <summary>
        /// 문자열을 bool 형식으로
        /// </summary>
        /// <param name="Value">대상 문자열</param>
        /// <returns>bool 값</returns>
        public static bool ToBoolean(this string Value)
        {
            if (Value.IsNullOrEmpty())
                return false;

            string[] truelist = new string[] { "Y", "y", "1", "true", "True", "TRUE" };
            return truelist.Contains(Value);
        }
    }

    /// <summary>
    /// 리피터 확장 객체
    /// </summary>
    public static class RepeaterExtention
    {
        /// <summary>
        /// Html컨트롤 Value 설정
        /// </summary>
        /// <param name="Target">리피터 아이템</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <param name="Value">설정하고자 하는 값</param>
        public static void SetInputValue(this RepeaterItem Target, string ControlName, string Value)
        {
            ((HtmlInputControl)Target.FindControl(ControlName)).Value = Value.ToStringNotNull();
        }

        /// <summary>
        /// Html컨트롤 Value을 가져옴
        /// </summary>
        /// <param name="Target">리피터 아이템</param>
        /// <param name="ControlName">컨트롤 명</param>
        public static string GetInputValue(this RepeaterItem Target, string ControlName)
        {
            return ((HtmlInputControl)Target.FindControl(ControlName)).Value;
        }

        /// <summary>
        /// 컨트롤 Text 설정
        /// </summary>
        /// <param name="Target">리피터 아이템</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <param name="Value">설정하고자 하는 값</param>
        public static void SetText(this RepeaterItem Target, string ControlName, string Value)
        {
            ((ITextControl)Target.FindControl(ControlName)).Text = Value.ToStringNotNull();
        }

        /// <summary>
        /// 컨트롤 Attribute 설정
        /// </summary>
        /// <param name="Target">리피터 아이템</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <param name="Key">대상 속성 키 값</param>
        /// <param name="Value">설정하고자 하는 값</param>
        public static void SetAttribute(this RepeaterItem Target, string ControlName, string Key, string Value)
        {
            ((System.Web.UI.IAttributeAccessor)Target.FindControl(ControlName)).SetAttribute(Key, Value);
        }

        /// <summary>
        /// 컨트롤 Text을 가져옴
        /// </summary>
        /// <param name="Target">리피터 아이템</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <returns>Text 값</returns>
        public static string GetText(this RepeaterItem Target, string ControlName)
        {
            return ((ITextControl)Target.FindControl(ControlName)).Text;
        }

        /// <summary>
        /// 컨트롤 Visible 설정
        /// </summary>
        /// <param name="Target">리피터 아이템</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <param name="Visible">설정하고자 하는 값</param>
        public static void SetVisible(this RepeaterItem Target, string ControlName, bool Visible)
        {
            ((System.Web.UI.Control)Target.FindControl(ControlName)).Visible = Visible;
        }

        /// <summary>
        /// 컨트롤 Enabled 설정
        /// </summary>
        /// <param name="Target">리피터 아이템</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <param name="Enabled">설정하고자 하는 값</param>
        public static void SetWebControlEnabled(this RepeaterItem Target, string ControlName, bool Enabled)
        {
            ((System.Web.UI.WebControls.WebControl)Target.FindControl(ControlName)).Enabled = Enabled;
        }

        /// <summary>
        /// 컨트롤 객체 가져오기 설정
        /// </summary>
        /// <typeparam name="TControlType">컨트롤 형식</typeparam>
        /// <param name="Target">대상 Repeater 항목</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <returns>객체</returns>
        public static TControlType GetControl<TControlType>(this RepeaterItem Target, string ControlName)
            where TControlType : System.Web.UI.Control
        {
            return Target.FindControl(ControlName) as TControlType;
        }

        /// <summary>
        /// 웹컨트롤 객체 가져오기 설정
        /// </summary>
        /// <typeparam name="TControlType">컨트롤 형식</typeparam>
        /// <param name="Target">대상 Repeater 항목</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <returns>객체</returns>
        public static TControlType GetWebControl<TControlType>(this RepeaterItem Target, string ControlName)
            where TControlType : System.Web.UI.WebControls.WebControl
        {
            return Target.FindControl(ControlName) as TControlType;
        }

        /// <summary>
        /// Html 컨트롤 객체 가져오기 설정
        /// </summary>
        /// <typeparam name="TControlType">컨트롤 형식</typeparam>
        /// <param name="Target">대상 Repeater 항목</param>
        /// <param name="ControlName">컨트롤 명</param>
        /// <returns>객체</returns>
        public static TControlType GetHtmlControl<TControlType>(this RepeaterItem Target, string ControlName)
            where TControlType : System.Web.UI.HtmlControls.HtmlControl
        {
            return Target.FindControl(ControlName) as TControlType;
        }
    }

 

반응형