<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)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本免费xxxx色视频| 亚洲中文无码a∨在线观看| 免费可以在线看A∨网站| a级毛片无码免费真人久久| 亚洲AV综合永久无码精品天堂| 亚洲男人都懂得羞羞网站| 亚洲偷自拍拍综合网| 四虎永久在线免费观看| 男男AV纯肉无码免费播放无码| 午夜影院免费观看| 最近更新免费中文字幕大全| 免费人成视频在线观看免费| 亚洲精品一卡2卡3卡四卡乱码| 亚洲一级片在线播放| 久久综合亚洲鲁鲁五月天| 亚洲狠狠婷婷综合久久久久| 亚洲午夜无码AV毛片久久| 亚洲国产成人精品女人久久久| 日本牲交大片免费观看| 成人免费无毒在线观看网站| 无人在线直播免费观看| 五月婷婷综合免费| 老司机在线免费视频| 7723日本高清完整版免费| 91免费国产自产地址入| 91在线老王精品免费播放| 99视频免费观看| 中文字幕无码日韩专区免费 | 久久永久免费人妻精品下载| 中国性猛交xxxxx免费看| 久久免费视频一区| 久青草视频97国内免费影视| 久久国产一片免费观看| 三年片免费高清版 | 中文字幕久久亚洲一区| 久久亚洲国产成人精品无码区| 中文字幕第一页亚洲| 国产aⅴ无码专区亚洲av麻豆| 久久亚洲国产精品123区| 亚洲VA中文字幕无码毛片| 亚洲成熟xxxxx电影|