Dzwebs.Net

撰写电脑技术杂文十余年

动态添加控件、设置控件属性并获得控件属性值

Admin | 2007-11-11 17:31:52 | 被阅次数 | 12171

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

在NET中如何动态添加控件,并设置控件属性以及获得控件的属性呢?

首先说明:动态添加控件,最好把生成的控件添加到容器里面,以下介绍动态生成的控件,都添加到Panel对象里面,为什么这样做呢?是为了方便控制显示位置与查找并获得控件值,以便对其进行相关的操作!

在考试系统中经常使用到动态控件,以下作详细说明:

1:首先在页面中添加一个静态固定的Panel,操作方法很简单,从工具箱里面直接将该控件拖入适当位置就行,给其ID取个名字,本例ID为:p1

2:根据需要动态添加控件到Panel里面,以下为代码生成过程(以生成CheckBoxList对象为例):
       CheckBoxList cb = new CheckBoxList();
       cb.EnableViewState = true;//当页面中有回发操作时,仍然保持其操作值
       cb.ID = "cb1";
       for(int i=1;i<=8;i++)//使用循环生成8个CheckBoxList并设置其标签分别为A,B..H 
       {
        cb.Items.Add(Convert.ToChar('A'+(i-1)).ToString());
       }
       this.p1.Controls.Add(cb);

       好了,已生成动态控件,如果想生成多个同样的控件,请在外面使用循环操作;

3:如何对生成的动态控件CheckBoxList 进行操作:

       CheckBoxList cb = new CheckBoxList();//定义控件类别

       cb = (CheckBoxList)p1.FindControl("cb1");//查找刚才定义的控件ID

       for(int j=0;j<cb.Items.Count;j++)//通过循环,查找该控件的选项!
       {
            if(cb.Items[j].Selected == true)//查找控件的哪些选项被选中了!
           {

               //执行相关的操作!
           }

        }

问题已结束!

分析:很多网友经常遇到这样的情况,动态添加控件之后,当第一次载入页面时能够看到显示的控件,但是,当页面出现回发操作时,就找不到控件了,原因是:在页面载入时,使用了这样的代码:

if (!IsPostBack)
        { 
          //动态生成控件函数      

        }

诸不知,实际上并不需要这个判断语句的,直接生成,当页面重新载入时,也需要重新执行动态生成控件函数;

其次,尽量使用容器类的控件容纳动态生成的控件,否则会造成这些控件在页面中无法定位的问题!


网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231