日期:2014-05-18  浏览次数:20407 次

如何动态添加任意个控件?
我想实现按一次按扭,添加一个查询条件;我用Panel来做控件容器。现在问题是添加控件按扭按下第一次时可显示。但按别的按扭panel中的控件将变成空,而且不管怎么按添加控件按扭都只能再一组控件,而不是期望的任意添加。panel的enableViewState已改成true了的。
        private   void   AddSearchItem()
        {
                DropDownList   list0   =   new   DropDownList();                
                ListItem[]   items0   ={new   ListItem( "全部 ", " "),   new   ListItem( "服务品质 ", "1 "),   new   ListItem( "接待员服务满意度 ",   "item1 "),
                        new   ListItem( "查新员服务满意度 ",   "item2 "),new   ListItem( "查新员的专业水平满意度 ",   "item3 "),  
                        new   ListItem( "报交报告时间是否按时 ",   "item4 "),new   ListItem( "服务设施、环境满意度 ",   "item5 "),
                        new   ListItem( "服务产品质量 ", "2 "),new   ListItem( "报告准确、清晰度 ", "item21 "),new   ListItem( "报告客观、公正性 ", "item22 "),
                        new   ListItem( "报告规范性 ", "23 "),new   ListItem( "有建议 ", "Suggestion ")};

                list0.Items.AddRange(items0);

                DropDownList   list1   =   new   DropDownList();
                ListItem[]   items1   ={   new   ListItem( "很满意 ",   "10 "),   new   ListItem( "满意 ",   "8 "),   new   ListItem( "一般 ",   "6 "),   new   ListItem( "不满意 ",   "3 "),
                                                new   ListItem( "很不满意 ",   "0 ")};  
             
                list1.Items.AddRange(items1);

     
                list0.EnableViewState   =   true;
                list1.EnableViewState   =   true;
                this.Panel1.Controls.Add(list1);
                this.Panel1.Controls.Add(list0);
        }
    protected   void   ibtnAdd_Click(object   sender,   ImageClickEventArgs   e)
        {
                this.AddSearchItem();
        }

------解决方案--------------------
页面刷新 控件肯定会没有了。
我试了试用session存放控件
这样会实现你说的功能,但是有些乱,还需改进

private Hashtable DropDownListName //用于接收控件,及其值
{
get
{
i