我有一个页面,里面有很多控件,我将这些控件名都写入数据库里,例如一个
<div class="box_menu" id="BC_Safe" runat="server"><a href="BC_Safe.aspx" class="linkb">安全库存</a></div>
数据库里存放了 id字段,字段值是 "BC_Safe",还有一个字段是是否可见 state字段,字货值,是True现在我怎么样能从数据库中读出这个数据,来设置控件的可见性,就是说读出来的ID是字符串,怎么转成对应的控件

解决方案 »

  1.   

    暂时想到了一种略麻烦的办法。    protected void Page_Load(object sender, EventArgs e)
        {
            List<EntityClass> list = new List<EntityClass>();
            EntityClass entity1 = new EntityClass();
            entity1.Id = "txtName";
            entity1.Visible = true;        EntityClass entity2 = new EntityClass();
            entity2.Id = "txtValue";
            entity2.Visible = false;        list.Add(entity1);
            list.Add(entity2);        foreach(EntityClass entity in list)
            {
                foreach (Control ctrl in this.Controls) 
                {
                    if(ctrl.ID == entity.Id)
                    {
                        ctrl.Visible = entity.Visible;
                    }
                }
            }
        }    /// <summary>
        /// 构建实体类
        /// </summary>
        public class EntityClass
        {
            /// <summary>
            /// 控件ID
            /// </summary>
            private string id;        public string Id
            {
                get { return id; }
                set { id = value; }
            }        /// <summary>
            /// 是否可见
            /// </summary>
            private bool visible;        public bool Visible
            {
                get { return visible; }
                set { visible = value; }
            }
        }
      

  2.   

    或者直接这样也可以        foreach(EntityClass entity in list)
            {
                Control ctrl = this.FindControl(entity.Id);
                ctrl.Visible = entity.Visible;
            }