2011-08-15 14 views
1

動的に生成しているLinkButtonOnclick属性を追加する必要があります。それを追加するには?ここでDynamic LinkBut​​tonにOnclick関数を追加するにはどうすればいいですか?

私がこれまでに来て、と打ったコードは次のとおりです。

foreach(string i in List)//list has more than 50 data's 
     { 
      LinkButton link = new LinkButton(); 
      link.Text = topics; 
      link.ID = topics; 
      link.Attributes.Add("runat", "server"); 
      link.Click += new EventHandler(this.lnk_Click); 
      div_ID.Controls.Add(link); 
      div_ID.Controls.Add(new LiteralControl("<br />")); 
     } 

public void lnk_Click(object sender,EventArgs e) 
{ 
    string ctrlId = ((Control)sender).ID; 
    GMethod(ctrlId); //handles some function in which i pass the id of the particular lnk button 
} 

私は動的に生成する上で、私のLinkButtonからこのlnk_Clickを呼び出すことができます。そのonclick属性はリンクボタンに追加されていません。この人に私を助けてください。私は衝動がある。

+0

どのプログラミング言語ですか? –

+0

@laurent ASP.Net、c#3.5。 サーバー側で作業するにはコードが必要です。 – Googler

+0

どのようなイベントでリンクボタンを生成していますか?あなたはすべてのポストにそれらを生成していますか?リスト内のアイテムは、各ポストに同じですか? – ShellyFM

答えて

0

自動的に行われるrunat = "server"属性を追加する必要はありません。 OnClickイベントハンドラを割り当てたので、そこにもすべて設定する必要があります。

これらのコントロールを動的に作成するので、ポストバック後にLinkBut​​tonコントロールを再生成するコードを用意してください。そうしないと、イベントハンドラは起動しません。また、ポストバック後に再生成するときに、同じIDを割り当てるようにしてください。

+0

@james ..ありがとうございますがまだ動作していません..リンクをクリックするとポストバックが行われますが、イベント[lnk_Click]は呼び出されません。 正しいパスにいますか? mtコードに間違いがありますか? Plsはこの上で私を助けます.. – Googler

+0

ポストバック後にこれらのコントロールを再生成する方法を示すいくつかのコードを投稿してください。 –

+0

私はそれにも問題があります。私は、それはpre_init関数でのみ可能であることがわかりました。私はページの読み込み機能でリンクボタンを動的に作成しています。動的に生成されたリンクをクリックすると、ポストバックが発生しますが、イベントが呼び出されず、ダイナミックリンクが再度バインドされません。 – Googler

0

また、ダイナミックに作成されたハイパーリンクのonClickイベントが発生しないという同じ問題に直面していました。ハイパーリンクの動的作成コードを「if(!IsPostBack)」内に配置し、毎回ランダムIDをハイパーリンクに割り当てる間違いをしていました。だから、一意のIDを割り当てて、コードを "if(!IsPostBack)"の外に置いてみてください。働くでしょう。

関連する問題