1

コードビハインドを追加するために以下のコードを使用LinkButtonしますが、各リンクボタンをクリックしてもクリックイベントは呼び出されませんが、削除するif(!IsPostBack)と正常に動作します

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.sr();
        }//if
    }

    void sr()
    {
        LinkButton lnk;
        for (int i =1; i < 6; i++)
        {
            lnk = new LinkButton();
            lnk.ID="lnk"+i.ToString();
            lnk.Text = i.ToString() + "&nbsp;&nbsp;&nbsp;&nbsp;";
            lnk.Click += new EventHandler(lnk_Click);
            this.pnl.Controls.Add(lnk);
 }
    }

    void lnk_Click(object sender, EventArgs e)
    {
        LinkButton lnk = (LinkButton)sender;
        lnk.Text = "Clicked";
    }
4

3 に答える 3

0

ページにコントロールを動的に追加する場合、ページが読み込まれるたびにコントロールを追加する必要があります。これは、ページの初期化イベントで行うのが理想的です。これが、!Page.IsPostBack 条件を削除したときにコードが機能する理由です。

于 2012-11-28T06:38:23.610 に答える
0

linkBut​​tonを動的に作成しています。

次のようにPage_Init関数で sr() を呼び出す必要があります...

void Page_Init(object Sender, System.EventArgs e)
{
  sr();
}

これをチェックしてください

于 2012-11-28T06:34:56.083 に答える