2011-12-13 10 views
0

基本的に、私はリンクボタンを持っている更新パネルを持っています。ユーザーがリンクボタンをクリックするとすべての内容がクリアされ、ユーザーがEnterキーを押すと、更新パネルを更新するか、すべての内容で更新または再投入する必要があります。ポストバック後に動的に追加されたボタンのイベントを処理する

どうすればいいですか?

これは、リンクボタンのイベントハンドラが起動したときに、非表示のボタンを動的に作成し、ユーザーがキーを押したときに発生する新しいイベントハンドラを割り当てます。この新しい動的ボタンはリンクボタンイベントハンドラ内に作成されます。この新しいボタンイベントハンドラでは、コンテンツを再度埋め込みます。

私の方法の問題は、動的に作成されたボタンのイベントハンドラが起動されていないことです。 なぜですか?

C#でお答えください。 ありがとうございます。

よろしく、

マイコード#

protected void Submit_Click1(object sender, EventArgs e) 
    { 
     Label1.Text = TextBox1.Text + TextBox2.Text + " are sucessfully registered"; 
     Button mento = new Button(); 
     mento.cssclass = "invisible"; 
     mento.Click += new EventHandler(mento_click); 
     // here this new mento button is attached to update panel 
     updatepanel1.ContentTemplateContainer.Controls.add(mento); 
    } 

さて、問題は発生しませんmento_clickイベントハンドラです???

+0

あなたのコードを添付できますか? – MRM

+0

はい、あなたが持っているものとあなたが見ている行動を教えてください。 – McKay

+0

私は何をしようとしているのか関連するコードを添付しました。あなたが私を助けることができるかどうかを見てください。ありがとう – gjohal

答えて

1

入力キーをテキストボックスに入れることはできますか?

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     //add event keydown 
     textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown); 

    } 
    void textBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     switch (e.KeyCode) 
     { 

      case Keys.Enter: 
       //YOur updatecode here: 
       MessageBox.Show("You press enter"); 
       break; 

      default: 
       break; 
     } 
    } 
} 
+1

私はopがwinformsでないwebformsについて質問していると思います... –

0

あなたがpage_initまたはをPage_Loadたびに要求をtheresの、またはイベントが文句を言わない制御まで夢中にイベントを添付する必要があります。

page_init(object sender, EventArgs e) 
    { 
     CreateControls(); 
    } 

    private void CreateControls() 
    { 
     //Create button with event and add to the panel 
    } 

    clickEvent(object sender, EventArgs e) 
    { 
     updatePanel.Update(); 
    } 
:あなたはあなたのような何かを行う必要があります提出する上でそれをフックアップしたい場合は

http://msdn.microsoft.com/en-us/library/ms178472.aspx

あなたはなぜを理解するために、このリンクをチェックアウトすることができます

イベントを正しく起動する必要があります。私はちょうどその場でこれを書いて、それをテストしていない申し訳ありませんが、私はあなたに一般的なアイデアを与えることを願っています。

乾杯。

+0

あなたはwebformまたはwinformについて話していますか?私はasp.netタグからwebformのthougt。 –

+0

page_loadにイベントを添付する例を教えてください。 – gjohal

+0

確かに、私は応答を編集した、私は助けを願っています。 –

0

asp.netのボタンからポストバックをして皆さんに声をかけて、私はボタンをクリックするイベントを扱う代替と古代の方法を述べたいと思います。

1)プレフィックス(例:btn_など)を使用して、動的に作成されたボタンに名前を付けます。こうすると、作成するすべてのボタンには、この接頭辞で始まる名前が付けられます。たとえば、作成する最初のボタンの名前はbtn_0になります。 )

For _counter As Integer = 0 To 3 
Dim butt As New Button 
' the next 1 line is convenient when programming for the .net 4.0 framework: 
butt.ClientIDMode = UI.ClientIDMode.Static 
butt.butt.ID = "btn_" & _counter 
butt.Text = "someting" 
page.controls.add(butt) 
next 

2 ...そして、それはすべて、あなたは、ASPのon_loadイベントでこのようにそれを行うことができます処理するために:あなたはこのようなルーチンによって、これを達成することができます。ネットページ:

If IsPostBack Then 
    For Each key As String In Request.Form 
     If InStr(Trim(key), "btn_") > 0 Then 
      Response.Write(Request.Form(key)) 
     End If 
    Next 
End If 
関連する問題