zoukankan      html  css  js  c++  java
  • 把数据显示到页面和从页面取数据的方法

        //数据显示到页面
        protected void BindDataToPage(Asset act)
        {

            var panelContent = Page.FindControl("PanelAsset");
            Control ctrlFounded;
            TextBox txtField;
            DropDownList ddlField;
            CheckBox chkField;
            string strTemp;

            // 设置控件的值
            Type actType = act.GetType();
            PropertyInfo[] properties = actType.GetProperties();
            foreach (PropertyInfo p in properties)
            {
                //找下拉框
                ctrlFounded = panelContent.FindControl("DDL" + p.Name);
                if (ctrlFounded != null)
                {
                    if (ctrlFounded.GetType() == typeof(DropDownList))
                    {
                        ddlField = (DropDownList)ctrlFounded;
                        strTemp = p.GetValue(act, null).ToString();
                        ddlField.SelectedValue = strTemp;
                    }
                    continue;
                }
                //再找文本框
                ctrlFounded = panelContent.FindControl("Txt" + p.Name);
                if (ctrlFounded != null)
                {
                    if (ctrlFounded.GetType() == typeof(TextBox))
                    {
                        txtField = (TextBox)ctrlFounded;
                        txtField.Text = p.GetValue(act, null).ToString();
                    }
                    continue;
                }
                //再找单选框
                ctrlFounded = panelContent.FindControl("Chk" + p.Name);
                if (ctrlFounded != null)
                {
                    if (ctrlFounded.GetType() == typeof(CheckBox))
                    {
                        chkField = (CheckBox)ctrlFounded;
                        chkField.Checked = (bool)p.GetValue(act, null);
                    }
                    continue;
                }
                //找不到,返回
            }
        }
        //从页面取数据
        protected Asset GetDataFormPage(Asset act)
        {
            var panelContent = Page.FindControl("PanelAsset");
            Control ctrlFounded;
            TextBox txtField;
            DropDownList ddlField;
            CheckBox chkField;
            string strTemp;

            // 从控件的返回值
            Type actType = act.GetType();
            PropertyInfo[] properties = actType.GetProperties();
            foreach (PropertyInfo p in properties)
            {
                //找下拉框
                ctrlFounded = panelContent.FindControl("DDL" + p.Name);
                if (ctrlFounded != null)
                {
                    if (ctrlFounded.GetType() == typeof(DropDownList))
                    {
                        ddlField = (DropDownList)ctrlFounded;

                        if (p.PropertyType.Name == "Boolean")
                        {
                            p.SetValue(act, ddlField.SelectedValue == "0" ? false : true, null);
                        }
                        else
                        {
                            p.SetValue(act, Convert.ChangeType(ddlField.SelectedValue, p.PropertyType), null);
                        }

                    }
                    continue;
                }
                //再找文本框
                ctrlFounded = panelContent.FindControl("Txt" + p.Name);
                if (ctrlFounded != null)
                {
                    if (ctrlFounded.GetType() == typeof(TextBox))
                    {
                        txtField = (TextBox)ctrlFounded;
                        p.SetValue(act, Convert.ChangeType(txtField.Text, p.PropertyType), null);

                    }
                    continue;
                }
                //再找单选框
                ctrlFounded = panelContent.FindControl("Chk" + p.Name);
                if (ctrlFounded != null)
                {
                    if (ctrlFounded.GetType() == typeof(CheckBox))
                    {
                        chkField = (CheckBox)ctrlFounded;
                        p.SetValue(act, Convert.ChangeType(chkField.Checked, p.PropertyType), null);

                    }
                    continue;
                }
                //找不到,返回
            }


            return act;

        }
  • 相关阅读:
    dll相关(转载)
    安装VSFTPD时遇到的问题
    WinCE API(转载)
    SSRAM、SDRAM和Flash简要介绍(转载)
    NANO板子调试小结
    使用PowerDesigner 建立企业知识库
    PowerDesigner在CDM取消列名重复
    在X64系统中PowerDesigner无法连接MySQL的解决方法
    左右值无限分类实现算法
    数据库主键设计之思考
  • 原文地址:https://www.cnblogs.com/zhukezhuke/p/1534711.html
Copyright © 2011-2022 走看看