某个偏技术的内向男的一个分析代码,无限YY的小窝。
  • ASP.NET中ID,ClientID,UniqueID的区别

    2010-12-03

    ID是你实例化对象的时候所指定的ID。通过这个 ID 可以在服务器端对服务器端控件的属性、方法和时间进行编程访问。

    ClientID是你实例化的对象生成为HTML代码时所对应的id,需要在客户端访问时候用的,一般情况下与服务器端的 ID 相同,如果是控件嵌套则一般每层用_隔开,常用方式:

    var divContainer=document.getElementById(‘<%=  divContainer.ClientID%>’);

    UniqueID是你实例化的对象生成为HTML代码时对应的name,当需要参与服务端回传的时候用的,一般用$隔开,如下代码:

    <input id=”Repeater1_ctl03_CheckBox1″ type=”checkbox” name=”Repeater1$ctl03$CheckBox1″ />

    <input name=”Repeater1$ctl03$Hidden1″ type=”hidden” id=”Repeater1_ctl03_Hidden1″ value=”993″ />

    某些控件,如在Gridview中Pagetemplate中的控件通过ID取不到值的控件可以通过Requst.From[gridview.FindControl(ID).UniqueID]来获取回传的值(有时候通过Text获取不到客户端最新提交的值)。

    作者:天南一隅 | 分类目录:代码乐趣程序人生 | 标签:
  • 通过反射给对象属性进行赋值

    2010-11-29

    看到公司项目中用到了反射于是闲的无聊写了个动态给子类赋值的方法。
    基类:BaseObject

    用于获取子类类型的方法

    
            public static BaseObject GetTypeByName(string typeName)
            {
                switch (typeName.ToLower())
                {
                    case "user":
                        return new User();
    
                    cass "基类"
                        return new 基类();
    
                    cass ..........
                    default:
                        return (BaseObject)null;
                }
            }
    

    用于获取绑定属性的方法

      //keyAndValue 存放的为属性名称与值 来自与数据库 对应数据库的字段与字段值
      public static BaseObject GetObjByString(string tableName, Dictionary keyAndValue)
            {
                BaseObject Obj = GetTypeByName(tableName);//使用上面的方法获取对象
                if (Obj == null)
                {
                    return Obj;
                }
                Type t = Obj.GetObjectType();//基类的一个返回当前类型的方法,子类继承后重写
                PropertyInfo[] fields = t.GetProperties();
                string tmpStr = null;
                foreach (PropertyInfo field in fields)
                {
                    tmpStr = keyAndValue[field.Name];
                    if (string.IsNullOrEmpty(tmpStr))
                    {
                        field.SetValue(Obj, string.Empty, null);
                    }
                    else
                    {
                        field.SetValue(Obj, getValue(field.PropertyType, tmpStr), null);//getValue方法用于根据属性类型对值进行相应的转化然后赋给属性
                    }
                }
                return Obj;
             }
    

    动态转化类型方法

            private static Object getValue(Type type, string value)
            {
                return TypeDescriptor.GetConverter(type).ConvertFrom(value);
            }
    

    User类实体

     public class User : BaseObject
        {
            public User() { }
            public User(int ID) : base(ID) { }
    
            private int _id;
            private string _username = "";
            private string _password = "";
            private string _name = "";
            private int _city_id = 0;
            private int _department_id = 0;
            private int _userlevel = 0;
            private int _state = 1;
            private string _authorities = "";
            private string _menulist = "";
            private DateTime _lastactivity = DateTime.Now;
            private DateTime _ctime = DateTime.Now;
            private decimal _phcardprofit;
            private int _UserType;
    
            public int UserType
            {
                get { return _UserType; }
                set { _UserType = value; }
            }
    
            public decimal PhCardProfit
            {
                set { _phcardprofit = value; }
                get { return _phcardprofit; }
            }
    
            ///
    
            /// 返回对象类型
            /// 
    
            public override Type GetObjectType()
            {
                return Type.GetType("NewspaperMis.Model.User");
            }
    
            ///
    
            ///
            /// 
    
            public override int id
            {
                set { _id = value; }
                get { return _id; }
            }
    
            ///
    
            ///
            /// 
    
            public string UserName
            {
                set { _username = value; }
                get { return _username; }
            }
    
            ///
    
            ///
            /// 
    
            public string Password
            {
                set { _password = value; }
                get { return _password; }
            }
    
            ///
    
            /// 名称
            /// 
    
            public string Name
            {
                set { _name = value; }
                get { return _name; }
            }
    
            ///
    
            /// 城市
            /// 
    
            public int City_ID
            {
                set { _city_id = value; }
                get { return _city_id; }
            }
    
            ///
    
            /// 部门
            /// 
    
            public int Department_ID
            {
                set { _department_id = value; }
                get { return _department_id; }
            }
    
            ///
    
            ///
            /// 
    
            public int UserLevel
            {
                set { _userlevel = value; }
                get { return _userlevel; }
            }
    
            ///
    
            /// 状态
            /// 
    
            public int State
            {
                set { _state = value; }
                get { return _state; }
            }
    
            ///
    
            /// 权限
            /// 
    
            public string Authorities
            {
                set { _authorities = value; }
                get { return _authorities; }
            }
    
            ///
    
            /// 权限树
            /// 
    
            public string MenuList
            {
                set { _menulist = value; }
                get { return _menulist; }
            }
    
            ///
    
            /// 最后活动时间
            /// 
    
            public DateTime LastActivity
            {
                set { _lastactivity = value; }
                get { return _lastactivity; }
            }
    
            ///
    
            /// 登记时间
            /// 
    
            public DateTime CTime
            {
                set { _ctime = value; }
                get { return _ctime; }
            }
        }
    
    作者:天南一隅 | 分类目录:代码乐趣程序人生 | 标签:
  • [转]如何GridView里使用单选按钮

    2010-11-16

    在GridView里做单选按钮,我用了三种方法
    先介绍第一种方法:在GridView的模版列里加服务器端控件RadioButton,使用js控制单选使用模版列里加RadioButton

    
            
    
                    
                        
                            
                        
                    
                
            
            
            
    

    控制单选的js,在这里,我使用了遍历页面上所有控件的方法,加入了条件,就是加粗那个判断,只控制GridView1里id是RadioButton1生成的单选按钮这种办法需要绑定客户端事件

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //给每个RadioButton1绑定setRadio事件
            try
            {
                ((RadioButton)e.Row.FindControl("RadioButton1")).Attributes.Add("onclick", "setRadio(this)");
            }
            catch (Exception)
            { }
        }
    

    取值的方法就是遍历GridView的每一行,取选中的控件

    protected void Button1_Click(object sender, EventArgs e)
        {
            //使用模版列里加RadioButton
            Label1.Text = "";
            foreach (GridViewRow gvr in GridView1.Rows)
            {
                try
                {
                    if (((RadioButton)gvr.FindControl("RadioButton1")).Checked)
                    {
                        Label1.Text = "当前选中第" + Convert.ToString(gvr.RowIndex + 1) + "个";
                        break;
                    }
                }
                catch (Exception)
                { }
            }
            if (Label1.Text.Length == 0)
            {
                Label1.Text = "没有选中项";
            }
        }
    

    这种方法,在客户端和服务器端都使用了遍历。

    作者:天南一隅 | 分类目录:代码乐趣程序人生 | 标签:
  • .NET仿百度谷歌智能提示实现

    2010-11-16

    说明一点:由于作者水平低下当前功能目前只支持IE。

    原理:当输入框有文本输入时即change事件发生时,异步请求某个处理程序,得到回发数据后在某个隐藏的DIV中显示。

    页面HTML代码:

    请输入客户名称
    //用于显示结果的DIV

    处理程序代码:

    protected void Page_Load(object sender, EventArgs e)
        {
            string key = Common.TQuery.GetSafeQueryString("v");
            if (key.Length > 0)
            {
                string filter = string.Empty;
                Model.User user = new Model.User(int.Parse(Session["User_ID"].ToString()));
                string length = Common.TQuery.GetSafeQueryString("l");
                Model.Customer customer = new Model.Customer();
                if (Common.TQuery.GetSafeQueryString("f") == "1")
                {
                    filter = string.Empty;
                }
                DataTable dt = //根据参数查询列表;
                string html = string.Empty;
                if (dt.Rows.Count > 0)
                {
                    int i = 0;
                    foreach (DataRow dr in dt.Rows)
                    {
                        string strName = dr["name"].ToString();
                        if (strName.IndexOf(key) == 0)
                        {
                            strName = key + "" + strName.Substring(key.Length) + "";
                        }
                        i++;
                        html += string.Format("
    
    ", i); html += string.Format("{1}{2}
    ", i, strName, ((BL.CustomerType)Convert.ToInt32(dr["CType"])).ToString()); } html += "
    关闭
    "; } Response.Write(html);//返回一段html代码直接放到div中 Response.End(); } }

    核心js代码:

          function checkCity(e,b,d)
          {
               var keycode=event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
               if(keycode!=38&&keycode!=40&&keycode!=13)
               {
                    var c=document.getElementById("txtname");
                    var s=document.getElementById("< % =drpcustomertype.ClientID %>");
                    $.get('ajax/customer_list.aspx',{l: s.value,v: c.value,f: (document.getElementById("ckbcus").checked)?"1":"0",t: new Date()},
                    function(result)
                    {
                        var html = result;
                        if(result!=0)
                         {
                            document.getElementById("div_city").style.display='block';
                         }
                        else
                         {
                            document.getElementById("div_city").style.display  ='none';
                         }
                        $('#div_city').html(html);
                    });
                }
            }
    

    如有疑问,可留言,博主全天在线。

    作者:天南一隅 | 分类目录:代码乐趣程序人生 | 标签:
  • [转]C#中string.Format()方法

    2010-11-01

    代码:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            enum Color { Yellow = 1, Blue, Green };
            static DateTime thisDate = DateTime.Now;
            static void Main(string[] args)
            {
                string s = "";
                Console.Clear();
                Console.WriteLine("StandardNumeric Format Specifiers");
                s = String.Format(
                "(C)Currency: . . . . . . . . {0:C}\n" +
                "(D)Decimal:. . . . . . . . . {0:D}\n" +
                "(E)Scientific: . . . . . . . {1:E}\n" +
                "(F)Fixed point:. . . . . . . {1:F}\n" +
                "(G)General:. . . . . . . . . {0:G}\n" +
                " (default):.. . . . . . . {0} (default = 'G')\n" +
                "(N)Number: . . . . . . . . . {0:N}\n" +
                "(P)Percent:. . . . . . . . . {1:P}\n" +
                "(R)Round-trip: . . . . . . . {1:R}\n" +
                "(X)Hexadecimal:. . . . . . . {0:X}\n",
                -123, -123.45f);
    
                Console.WriteLine(s);
    
                Console.WriteLine("StandardDateTime Format Specifiers");
                s = String.Format(
                "(d)Short date: . . . . . . . {0:d}\n" +
                "(D)Long date:. . . . . . . . {0:D}\n" +
                "(t)Short time: . . . . . . . {0:t}\n" +
                "(T)Long time:. . . . . . . . {0:T}\n" +
                "(f)Full date/short time: . . {0:f}\n" +
                "(F)Full date/long time:. . . {0:F}\n" +
                "(g)General date/short time:. {0:g}\n" +
                "(G)General date/long time: . {0:G}\n" +
                " (default):.. . . . . . . {0} (default = 'G')\n" +
                "(M)Month:. . . . . . . . . . {0:M}\n" +
                "(R)RFC1123:. . . . . . . . . {0:R}\n" +
                "(s)Sortable: . . . . . . . . {0:s}\n" +
                "(u)Universal sortable: . . . {0:u} (invariant)\n" +
                "(U)Universal sortable: . . . {0:U}\n" +
                "(Y)Year: . . . . . . . . . . {0:Y}\n",
                thisDate);
                Console.WriteLine(s);
                Console.WriteLine("StandardEnumeration Format Specifiers");
                s = String.Format(
                "(G)General:. . . . . . . . . {0:G}\n" +
                " (default):.. . . . . . . {0} (default = 'G')\n" +
                "(F)Flags:. . . . . . . . . . {0:F} (flags or integer)\n" +
                "(D)Decimal number: . . . . . {0:D}\n" +
                "(X)Hexadecimal:. . . . . . . {0:X}\n",
                Color.Green);
                Console.WriteLine(s);
                Console.ReadLine();
            }
        }
    }
    
    结果:
    
    
    作者:天南一隅 | 分类目录:代码乐趣 | 标签: