2011-12-23 3 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はトリガーリングではありません。だから皆さんのアイデア子ダイナミックリンクが起動していません

答えて

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

タンクマンこれは本当に役立ちます。私はこの機能をあなたと同じように追加しようとしていましたが、イベントを追跡できませんでした。ありがとうたくさんありがとう – user1111351

+0

こんにちは、私はもう一つの問題に直面しています。私はまた、addbuttonにineテキストボックスを作成しました。私はそのプロパティをvisible = falseに設定しました。今私はそれをvisible = trueに変更しようとしています。どのようにこのテキストボックスの値にアクセスするのですか? – user1111351

1

あなたはpage_init方法でボタンを追加する必要があり、ボタンクリックまたはをPage_Loadメソッドでそれらを追加しないでください。

関連する問題