请问如何实现如下功能:
  有一个PlaceHolder控件,一个Buttion,一个DropDownList。
如何做到点击Button后,根据DropDownList中的名字,为PlaceHolder添加新控件。添加的控件要保持在整个应用程序中都存在(页面跳转之类都不会消失)。
实现跟修改代码添加控件一样的效果,要保证性能,不要占用太多的内存!

解决方案 »

  1.   

    添加的控件要保持在整个应用程序中都存在(页面跳转之类都不会消失)。
    ---------------------------------------------
    那你整个的放到session去好了,一般缓存数据,不会连控件一起存的吧?添加新控件
    ----------------
    Button btnTest = new Button();
    btnTest.ID = "btnTest";
    btnTest.Text = dropdownlist1.selecteditem.text;
    btnTest.Click +=new EventHandler(btnBinaryDownload_Click);
    btnTest.Width = 100;
    btnTest.Height = 100;
    // 输出
    this.phMyPlaceHolder.Controls.Add(btnTest);
      

  2.   

    整个应用程序中都存在(页面跳转之类都不会消失)。
    ============
    定制aspx界面?
      

  3.   

    还不如修改.aspx往.aspx中写代码。
      

  4.   

    用一个隐藏的textbox服务器控件的值来表示是否添加新控件,比如初始值为0,1表示添加新控件,在PageLoad中判断textBox的值,如果为1,则添加新控件。这样添加的控件保持在整个应用程序中都存在
      

  5.   

    这个怕是只能放到session中处理了
      

  6.   

    To  Kagad :
    ===========
    好像网页关掉的话TextBox中的值就没了吧!
      

  7.   

    有点难度,关注!!!
    如果真要实现LZ的想法,我想放入数据库中应该可以考虑
    当然,session是没办法所有的Client端都能看到
    如果要放内存我想,也只有Application可以了我没做过,也还没深入理解意思,如果说错,请包涵!
      

  8.   

    ViewState
    保存当前状态,不过应该是很占内存。
      

  9.   

    To  Kagad :
    ===========
    好像网页关掉的话TextBox中的值就没了吧!
    ______________________________________________________
    RF:如果当前页要关掉,可以将TextBox中的值传到打开的页面保存起来,当要打开本页时在传回来。当然如果你把所有的页面都关闭了,那肯定就丢失了。