我做的动态控件每次点击按钮,就在原有的动态控件上又重复添加一边,我想让他在用户访问时只添加一次,点按钮后就消失。  
放在if(!IsPostBack)里就出错  ,源码如下:  
private      void      Page_Load(object      sender,      System.EventArgs      e)  
{  
                                     
RadioButtonList  tx=new  RadioButtonList  ();  
PlaceHolder1.Controls  .Add  (tx);//      在此处放置用户代码以初始化页面  
tx.ID  ="tt";  
for(int  j=1;j<=4;j++)  
           {  
                                     
           ListItem  choice=new  ListItem  (j.ToString  ());  
           tx.Items  .Add  (choice);  
           choice.Value  =j.ToString  ();  
                                                                         
           }  
                                                 
}  
                                     
 
                       ///下面是      一个btn事件,为了显示客户端的选择情况  
 
private      void      Button1_Click(object      sender,      System.EventArgs      e)  
{  
           RadioButtonList  tr=new  RadioButtonList  ();  
           tr=(RadioButtonList)PlaceHolder1.FindControl  ("tt");  
           Response.Write  (tr.SelectedItem);  
             
             
                                     
}    

解决方案 »

  1.   

    在Page_Load事件中,把动态控件再重新绘一次的,不能放在 if(!IsPostBack)里面的
      

  2.   

    在Page_Load事件中,把动态控件再重新绘一次的,不能放在 if(!IsPostBack)里面的?
    我没放在if(!IsPostBack),可是每次点击按钮后页面就又出现一次动态控件,和前一次生成的动态控件一起显示在页面上,我想在点击按钮后动态控件消失,然后显示动态按钮的值,怎么做,请指教,请在原码的基础上给出具体的代码。
      

  3.   

    Button btn = null;
        protected void Page_Load (object sender, EventArgs e)
        {
            if (!IsComplete)
            {
                btn = new Button ();
                btn.ID = "btnTest";
                btn.Click += new EventHandler (btn_Click);
                // 将 btn 添加到指定的控件,这里假定是个Panel
                panel.Controls.Add (btn);
            }    }    private bool IsComplete
        {
            get
            {
                object tmp = ViewState["IsComplete"];
                return (tmp == null) ? false : (bool)tmp;
            }
            set
            {
                if (!object.Equals(ViewState["IsComplete"], value))
                {
                    ViewState["IsComplete"] = value;
                }
            }
        }
        protected void btn_Click (object sender, EventArgs e)
        {
            // Add your code
            Response.Write ("button click");
            IsComplete = true;
            // 从指定控件(这里假定是个Panel)中删除 btn 
            panel.Controls.Remove (btn);
        }
      

  4.   

    上述代码完全可以实现,但是用在RadioButtonList控件上就出错,注意RadioButtonList控件还有许多选项是动态生成的,我将自己的代码套用在上面的代码中出现两次动态生成的RadioButtonList控件,然后就提示“未将对象引用设置到对象的实例”,请在指教。
      

  5.   

    问题已解决,谢谢 lmbosos(lmbosos)给我的提示
      

  6.   

    问题已解决,谢谢  lmbosos(lmbosos)给我的提示