zoukankan      html  css  js  c++  java
  • 共享一些方法

    代码
    public static Control FindControl(Control container, string id)
    {
    Control c
    = container.Page.FindControl(id);
    if (c == null)
    {
    if (!(container is INamingContainer) && (container.NamingContainer != null))
    {
    container
    = container.NamingContainer;
    }
    c
    = FindControlInternal(container, id, null);
    if (c == null)
    {
    Dictionary
    <Control, bool> dictionary = new Dictionary<Control, bool>();
    dictionary[container]
    = true;
    container
    = container.NamingContainer;
    while (container != null && c == null)
    {
    c
    = FindControlInternal(container, id, dictionary);
    dictionary[container]
    = true;
    container
    = container.NamingContainer;
    }
    }
    return c;
    }
    return c;
    }
    private static Control FindControlInternal(Control control, string id, Dictionary<Control, bool> dictionary)
    {
    if (control.ID == id)
    {
    return control;
    }
    Control c
    = control.FindControl(id);
    if (c != null && c.ID == id)
    {
    return c;
    }
    foreach (Control temp in control.Controls)
    {
    if (dictionary == null || !dictionary.ContainsKey(temp))
    {
    c
    = FindControlInternal(temp, id, dictionary);
    if (c != null)
    {
    return c;
    }
    }
    }
    return null;
    }
    #endregion

    #region WebControls
    public static void SetPost(object entity)
    {
    SetPost(entity, CurrentPage);
    }
    public static void SetPost(object entity, Control parentControl)
    {
    Guard
    <ArgumentNullException>(parentControl == null, "parentControl");
    foreach (PropertyInfo property in entity.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty))
    {
    object value = GetPropertyAccess(property).GetValue(entity);
    if (value != null)
    {
    Control control
    = FindControl(parentControl, property.Name);
    if (control != null)
    {
    ITextControl textControl
    = control as ITextControl;
    if (textControl != null)
    {
    textControl.Text
    = value.ToString();
    }
    else
    {
    ICheckBoxControl checkBoxControl
    = control as ICheckBoxControl;
    if (checkBoxControl != null)
    {
    checkBoxControl.Checked
    = Convert.ToBoolean(value);
    }
    else
    {
    HiddenField hiddenField
    = control as HiddenField;
    if (hiddenField != null)
    {
    hiddenField.Value
    = value.ToString();
    }
    }
    }
    }
    }
    }
    }

    public static void GetPost(object entity)
    {
    GetPost(entity, CurrentPage);
    }
    public static void GetPost(object entity, Control parentControl)
    {
    Guard
    <ArgumentNullException>(parentControl == null, "parentControl");
    foreach (PropertyInfo property in entity.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty))
    {
    Control control
    = FindControl(parentControl, property.Name);
    if (control != null)
    {
    WebControl webControl
    = control as WebControl;
    if (webControl != null && !string.IsNullOrEmpty(webControl.Attributes["disabled"]))
    {
    continue;
    }
    object value = null;
    ITextControl textControl
    = control as ITextControl;
    if (textControl != null)
    {
    value
    = textControl.Text;
    }
    else
    {
    ICheckBoxControl checkBoxControl
    = control as ICheckBoxControl;
    if (checkBoxControl != null)
    {
    value
    = checkBoxControl.Checked;
    }
    else
    {
    HiddenField hiddenField
    = control as HiddenField;
    if (hiddenField != null)
    {
    value
    = hiddenField.Value;
    }
    }
    }
    if (value != null)
    {
    GetPropertyAccess(property).SetValue(entity, ChangeType(property, value));
    }
    }
    }
    }
    #endregion

    protected void Page_Load(object sender, System.EventArgs e)
        {
            DisplayControl(Page.Controls, 0); //调用递归查找控制,用树形显示
        }
    
        private void DisplayControl(ControlCollection controls, int depth)
        {
            foreach (Control control in controls)
            {
                Response.Write(new String('-', depth * 4) + "> ");
                Response.Write(control.GetType().ToString() + " - <b>" +
                  control.ID + "</b><br />");
                if (control.Controls != null)
                {
                    DisplayControl(control.Controls, depth + 1);
                }
            }
        }
    

            public static string FilterWord(string s)
            {
                string[] BadWords = new string[] { "腚", "妓", "娼", "奸", "尻", "贱", "婊", "屄", "赑", "妣", "肏", "尻", "屌" };
                for (int i = 0; i < BadWords.Length; i++)
                {
                    s = s.Replace(BadWords[i], new String('*', BadWords[i].Length));
                }
                return s;
            }
    
    /// <summary> 
            /// 转换人民币金额 
            /// </summary> 
            /// <param name="num">金额</param> 
            /// <returns>返回大写形式</returns> 
            public static string ConvertToRMB(decimal num)
            {
                string str1 = "零壹贰叁肆伍陆柒捌玖";  //0-9所对应的汉字 
                string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字 
                string str3 = String.Empty;  //从原num值中取出的值 
                string str4 = String.Empty;  //数字的字符串形式 
                string str5 = String.Empty;  //人民币大写金额形式 
                int i;  //循环变量 
                int j;  //num的值乘以100的字符串长度 
                string ch1 = String.Empty;  //数字的汉语读法 
                string ch2 = String.Empty;  //数字位的汉字读法 
                int nzero = 0;  //用来计算连续的零值是几个 
                int temp;  //从原num值中取出的值 
    
                num = Math.Round(Math.Abs(num), 2);  //将num取绝对值并四舍五入取2位小数 
                str4 = ((long)(num * 100)).ToString();  //将num乘100并转换成字符串形式 
                j = str4.Length;  //找出最高位 
                if (j > str2.Length)
                {
                    throw new OverflowException();
                }
                str2 = str2.Substring(15 - j);  //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 
    
                //循环取出每一位需要转换的值 
                for (i = 0; i < j; i++)
                {
                    str3 = str4.Substring(i, 1);  //取出需转换的某一位的值 
                    temp = Convert.ToInt32(str3);  //转换为数字 
                    if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15))
                    {
                        //当所取位数不为元、万、亿、万亿上的数字时 
                        if (str3 == "0")
                        {
                            ch1 = String.Empty;
                            ch2 = String.Empty;
                            nzero = nzero + 1;
                        }
                        else
                        {
                            if (str3 != "0" && nzero != 0)
                            {
                                ch1 = "零" + str1.Substring(temp * 1, 1);
                                ch2 = str2.Substring(i, 1);
                                nzero = 0;
                            }
                            else
                            {
                                ch1 = str1.Substring(temp * 1, 1);
                                ch2 = str2.Substring(i, 1);
                                nzero = 0;
                            }
                        }
                    }
                    else
                    {
                        //该位是万亿,亿,万,元位等关键位 
                        if (str3 != "0" && nzero != 0)
                        {
                            ch1 = "零" + str1.Substring(temp * 1, 1);
                            ch2 = str2.Substring(i, 1);
                            nzero = 0;
                        }
                        else
                        {
                            if (str3 != "0" && nzero == 0)
                            {
                                ch1 = str1.Substring(temp * 1, 1);
                                ch2 = str2.Substring(i, 1);
                                nzero = 0;
                            }
                            else
                            {
                                if (str3 == "0" && nzero >= 3)
                                {
                                    ch1 = String.Empty;
                                    ch2 = String.Empty;
                                    nzero = nzero + 1;
                                }
                                else
                                {
                                    if (j >= 11)
                                    {
                                        ch1 = String.Empty;
                                        nzero = nzero + 1;
                                    }
                                    else
                                    {
                                        ch1 = String.Empty;
                                        ch2 = str2.Substring(i, 1);
                                        nzero = nzero + 1;
                                    }
                                }
                            }
                        }
                    }
                    if (i == (j - 11) || i == (j - 3))
                    {
                        //如果该位是亿位或元位,则必须写上 
                        ch2 = str2.Substring(i, 1);
                    }
                    str5 = str5 + ch1 + ch2;
    
                    if (i == j - 1 && str3 == "0")
                    {
                        //最后一位(分)为0时,加上“整” 
                        str5 = str5 + '整';
                    }
                }
                if (num == 0)
                {
                    str5 = "零元整";
                }
                return str5;
            }
            /// <summary> 
            /// 重载,先将字符串转换成数字再调用ConvertToRMB(decimal num) 
            /// </summary> 
            /// <param name="num">用户输入的金额,字符串形式</param> 
            /// <returns></returns> 
            public static string ConvertToRMB(string num)
            {
                try
                {
                    return ConvertToRMB(Convert.ToDecimal(num));
                }
                catch
                {
                    return "0.00";
                }
            }
    
  • 相关阅读:
    打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
    基于 Windows Server 2008 的计算机对 Microsoft Dynamics CRM 4.0 的支持
    Microsoft Dynamics CRM 4.0 如何添加自定义按钮
    Microsoft Dynamics CRM 4.0 Plugin 取值,赋值,查询
    C# 中的 enum(枚举) 类型使用例子
    vue事件的绑定
    表单验证2
    node中模块
    node模块的引入
    node中的读文件
  • 原文地址:https://www.cnblogs.com/Googler/p/1922153.html
Copyright © 2011-2022 走看看