2011-12-23 23 views
2
using System; 
using System.Web.UI.WebControls; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     for (int i = 0; i < 20; i++) 
     { 

      Button bt = new Button(); 
      bt.Text = ""+i; 
      bt.Click += new EventHandler(bt_Click); 
      Panel1.Controls.Add(bt); 

     }  
    } 

    public void bt_Click(object sender, EventArgs e) 
    { 
     Button selected = sender as Button; 
     Panel1.Visible = false; 
     Label lbl = new Label(); 
     lbl.Text = "i am lable"; 
     Panel2.Controls.Add(lbl); 
     for (int i = 1; i < 30; i++) 
     {     
      Button pb = new Button();  
      pb.Text = selected.Text;  
      pb.Click += new EventHandler(pb_Click);        
      Panel2.Controls.Add(pb);    
     } 
    } 

    public void pb_Click(object sender, EventArgs e) // how to trigger it 
    { 
     Response.Redirect("http://www.google.com"); 
    }   
} 

這pb_Click不trigerring;所以人任何想法孩子動態鏈接不觸發

回答

3

顯然pb_Click將不會執行。要添加控件(按鈕)到bt_Click處理程序將被刪除在下次提交。您必須使用Page_Load事件來動態添加控件。

你可以寫/設計這樣的代碼:(一招)

protected void Page_Load(object sender, EventArgs e) 
    { 
     for (int i = 0; i < 20; i++) 
     { 

      Button bt = new Button(); 
      bt.Text = "" + i; 
      bt.ID = "btn" + i; // Assign unique ID 
      bt.Click += new EventHandler(bt_Click); 
      Panel1.Controls.Add(bt); 
     } 
     AddButtons(); 
    } 

    public void bt_Click(object sender, EventArgs e) 
    { 
     ViewState["btnId"] = (sender as Button).ID ; 
     AddButtons(); 
    } 

    public void AddButtons() 
    { 
     if (ViewState["btnId"] == null) 
      return; 
     Button selected = Panel1.FindControl(ViewState["btnId"].ToString()) as Button; 

     Panel1.Visible = false; 
     Label lbl = new Label(); 
     lbl.Text = "i am lable"; 
     Panel2.Controls.Add(lbl); 
     for (int i = 1; i < 30; i++) 
     { 

      Button pb = new Button(); 

      pb.Text = selected.Text; 

      pb.Click += new EventHandler(pb_Click); 
      Panel2.Controls.Add(pb); 

     } 
    } 
+0

坦克男人這是真正有用的我是想添加這個在difrent功能,你,但我不能跟蹤事件。非常感謝 – user1111351 2011-12-23 10:47:06

+0

嗨,我面臨的一個更問題我也創建國家統計局文本框中的Add按鈕。我已將其屬性設置爲visible = false;現在我試圖將其修改爲visible = true;所以如何在這裏訪問這個文本框的值。 – user1111351 2011-12-23 13:13:47

1

您需要在page_init方法中添加按鈕,並不會在按一下按鈕或的Page_Load方法添加。