for(int i=0;i<this.DropDownLists_list1.Count;i++)
{
   //初始化具体类别的dropdownlist
  string FirstListID = this.DropDownLists_list1[i].ToString();
  DropDownList tmp1 = new  DropDownList();
  tmp1.ID = FirstListID;
 
  tmp1.Items.Insert(0,"aa");   
  tmp1.Items.Insert(1,"bb");
  tmp1.Items.Insert(2,"cc");
  PlaceHolder1.Controls.Add(tmp1);
  tmp1.SelectedIndex = ((DropDownList)Page.FindControl(FirstListID)).SelectedIndex;  。
  。
  。
  。我在Page_Load()中这样动态生成了几个dropdownlist,DropDownLists_list1这个是个数组,用来保存控件id的,现在就是如何删除我指定那个动态生成的那个控件,我的做法是删除那个数组里面的控件的id,可是asp.net里面的执行顺序是先Page_Load,再执行我删除button下面的函数的,就是删除那个数组里面的控件的id,所以在页面上显示不出来,需要再次提交页面,小弟我就不知道如何做了??

解决方案 »

  1.   

    在page_load中根据条件来判断是否生成控件:if (created)
    {
      生成控件;
    }
      

  2.   

    page_loadif(!Page.IsPostBack)
    {
    你生成控件的代码
    }删除的时候,可以Page.Controls.Remove(Page.Controls[""]);
      

  3.   

    谢谢,可以删除了
    不过还有点小问题
    我是在PlaceHolder1容器里生成的控件,然后每生成四个控件换行,
    用的代码是PlaceHolder1.Controls.Add(new LiteralControl("<br>"));现在我删除了一行,就是四个控件,怎么把这个换行也删除掉呢?不然中间总是会有个空白行好难看啊
      

  4.   

    需要控件ID或者用控件索引Page.Controls.Remove(Page.Controls[0123456789...]);