<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Reflection;
    using System.IO;
    using System.Text;

    namespace ProjectDemo.Common
    {
        public static class EntityCopy
        {
            
             #region
             /// <summary>

            /// 通過搜索頁面對應控件來構造Model對象(要求控件必須以“_Model的屬性名”來命名(如:_Name),并大小寫一致)

            /// </summary>

            /// <param name="model">要構造的Model對象()</param>

            /// <param name="parentControl">控件的容器(比如Page或者Master的站位控件)</param>

            /// <returns>返回參數里model</returns>

            public static T GetModel<T>(T model, Control parentControl)

            {

                Type t = model.GetType();

                PropertyInfo[] pi = t.GetProperties();

                foreach (PropertyInfo p in pi)

                {

                    SetControlValueToModel(model, p, parentControl);

                }

                return model;

            }

     

            /// <summary>

            /// 把頁面控件上的值賦值給Model對象(要求控件必須以“_Model的屬性名”來命名(如:_Name),并大小寫一致)

            /// </summary>

            /// <param name="model">要賦值的Model對象</param>

            /// <param name="p">某個屬性</param>

            /// <param name="parentControl">控件的容器(比如Page或者Master的站位控件)</param>

            private static void SetControlValueToModel(object model, PropertyInfo p, Control parentControl)

            {

                Control control = parentControl.FindControl("_" + p.Name);

                if (control != null)

                {

                    Type t_c = control.GetType();

                    switch (t_c.FullName)

                    {

                        case "System.Web.UI.WebControls.TextBox": SetValue(model, p, ((TextBox)control).Text); break;

                        case "System.Web.UI.WebControls.CheckBox": SetValue(model, p, ((CheckBox)control).Checked); break;

                        case "System.Web.UI.WebControls.CheckBoxList":

                            CheckBoxList cbl = ((CheckBoxList)control);

                            StringBuilder sb = new StringBuilder();

                            for (int i = 0; i < cbl.Items.Count; i++)

                            {

                                if (cbl.Items[i].Selected)

                                {

                                    sb.Append(i);

                                    sb.Append(",");

                                }

                            }

                            SetValue(model, p, sb.ToString().TrimEnd(',')); break;

                        case "System.Web.UI.WebControls.Image": SetValue(model, p, ((Image)control).ImageUrl); break;

                        case "System.Web.UI.WebControls.DropDownList": SetValue(model, p, ((DropDownList)control).SelectedValue); break;

                        case "System.Web.UI.WebControls.RadioButtonList": SetValue(model, p, ((RadioButtonList)control).SelectedValue); break;

                        case "System.Web.UI.WebControls.HiddenField": SetValue(model, p, ((HiddenField)control).Value); break;

                        default: break;

                    }

                }

            }

     

            /// <summary>

            /// 把值賦給指定Model對象指定屬性上

            /// </summary>

            /// <param name="model">需要賦值的Model對象</param>

            /// <param name="p">某個屬性</param>

            /// <param name="value">要賦給Model的屬性的值</param>

            private static void SetValue(object model, PropertyInfo p, object value)

            {

                if (p.PropertyType.FullName == "System.Guid")

                {

                    p.SetValue(model, new Guid(value.ToString()), null);

                }

                else

                {

                    p.SetValue(model, Convert.ChangeType(value, p.PropertyType), null);

                }

            }

     

            #endregion

     

            #region 反射Model綁定頁面控件

     

            /// <summary>

            /// 綁定Model的值到頁面上對應控件(要求控件必須以“_Model的屬性名”來命名(如:_Name),并大小寫一致)

            /// </summary>

            /// <param name="model">賦好值的Model</param>

            /// <param name="parentControl">控件的容器(比如Page或者Master的站位控件)</param>

            public static void BindControls(object model, Control parentControl)

            {

                Type t = model.GetType();

                PropertyInfo[] pi = t.GetProperties();

                foreach (PropertyInfo p in pi)

                {

                    SetModelValueToControl(model, p, parentControl);

                }

            }

     

            /// <summary>

            /// 把Model的值賦給頁面上的控件(目前只針對Web)

            /// </summary>

            /// <param name="model">賦好值的Model</param>

            /// <param name="p">Model的某個屬性</param>

            /// <param name="parentControl">控件的容器(比如Page或者Master的站位控件)</param>

            private static void SetModelValueToControl(object model, PropertyInfo p, Control parentControl)

            {

                Control control = parentControl.FindControl("_" + p.Name);

                if (control != null)

                {

                    Type t_c = control.GetType();

                    switch (t_c.FullName)

                    {
                        case "System.Web.UI.WebControls.TextBox": ((TextBox)control).Text = p.GetValue(model, null).ToString(); break;
                        case "System.Web.UI.WebControls.Label": ((Label)control).Text = p.GetValue(model, null).ToString(); break;

                        case "System.Web.UI.WebControls.Literal": ((Literal)control).Text = p.GetValue(model, null).ToString(); break;

                      

                        case "System.Web.UI.WebControls.Image": ((Image)control).ImageUrl = p.GetValue(model, null).ToString(); break;

                        case "System.Web.UI.WebControls.DropDownList": ((DropDownList)control).SelectedValue = p.GetValue(model, null).ToString(); break;

                        case "System.Web.UI.WebControls.RadioButtonList": ((RadioButtonList)control).SelectedValue = p.GetValue(model, null).ToString(); break;

                        case "System.Web.UI.WebControls.CheckBox": ((CheckBox)control).Checked = (bool)p.GetValue(model, null); break;

                        case "System.Web.UI.WebControls.CheckBoxList":

                            string[] arr = ((string)p.GetValue(model, null)).Split(',');

                            CheckBoxList cbl = ((CheckBoxList)control);

                            for (int i = 0; i < arr.Length; i++)

                            {

                                cbl.Items[int.Parse(arr[i])].Selected = true;

                            }

                            break;

                        case "System.Web.UI.WebControls.HiddenField": ((HiddenField)control).Value = p.GetValue(model, null).ToString(); break;

                        default: break;

                    }

                }

            }

               #endregion

     


        }
        public class Person
        {
            public string Name { set; get; }
            public string Sex { set; get; }
        }
    }

    posted on 2013-06-09 17:13 sanmao 閱讀(678) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一区二区在线视频免费观看| 亚洲国产成人久久精品大牛影视| 深夜福利在线视频免费| 啦啦啦手机完整免费高清观看| 亚洲一区中文字幕在线电影网| 精品无码免费专区毛片| 亚洲人成7777影视在线观看| 亚洲大片免费观看| 亚洲国产精品综合久久20| 夭天干天天做天天免费看| 爱爱帝国亚洲一区二区三区| 亚洲精品成人片在线观看| 两个人看的www免费视频| 久久噜噜噜久久亚洲va久| 中文字幕乱码免费视频| 亚洲av无码无线在线观看| 亚洲精品综合久久| 久久青草免费91观看| 亚洲人成电影网站久久| 午夜亚洲av永久无码精品| 精品人妻系列无码人妻免费视频| 久久精品国产亚洲AV麻豆~| 成人浮力影院免费看| 黄页网址大全免费观看12网站| 国产日产亚洲系列| 波多野结衣免费在线| 美女被爆羞羞网站在免费观看| 日本亚洲欧洲免费天堂午夜看片女人员 | 特级毛片aaaa免费观看| 亚洲人精品午夜射精日韩| 色老头永久免费网站| 免费在线观看亚洲| 久久精品亚洲视频| 在线a人片天堂免费观看高清| yellow免费网站| 亚洲无砖砖区免费| 亚洲AV日韩精品一区二区三区 | 亚洲无圣光一区二区| 亚洲第一区精品日韩在线播放| 免费无码作爱视频| 亚洲aⅴ天堂av天堂无码麻豆 |