0

どんな助けもいただければ幸いです-

これが私のaspxコードです-

<div id="div_Detail" class="div_det" runat="server" />

そして私の背後にあるコードで-

protected void Page_Load(object sender, EventArgs e) {
  LoadDetail();
}

private void LoadDetail() {
    HtmlTable tbl = new HtmlTable();
    HtmlTableRow row = new HtmlTableRow();
    HtmlTableCell cell = new HtmlTableCell();

    Button bUpdate = new Button();
    bUpdate.Text = "Update";
    bUpdate.Click += this.Update_Click;

    cell.Controls.Add(bUpdate);
    row.Cells.Add(cell);
    tbl.Rows.Add(row);
    div_Detail.Controls.Add(tbl);
}

private void Update_Click(object sender, EventArgs e) {
    //Do something
}

ページに正しいテキストのボタンが表示されます。ただし、そのボタンをクリックすると、Update_Clickが呼び出されることはありません。

私は何かが足りないのですか?

4

3 に答える 3

2

ボタンにIDを付けてみてください。.NETエンジンは、コントロールを特定のイベントデリゲートに関連付けるために、ポストバック中にコントロールのIDを必要とします。

編集:

このコードは正常に機能します。

 protected void Page_Load(object sender, EventArgs e) {
        LoadDetail();
    }

    private void LoadDetail() {
        HtmlTable tbl = new HtmlTable();
        HtmlTableRow row = new HtmlTableRow();
        HtmlTableCell cell = new HtmlTableCell();

        Button bUpdate = new Button();
        bUpdate.Text = "Update";
        bUpdate.Click += this.Update_Click;
        bUpdate.ID = "btnID";

        cell.Controls.Add(bUpdate);
        row.Cells.Add(cell);
        tbl.Rows.Add(row);
        div_Detail.Controls.Add(tbl);
    }

    private void Update_Click(object sender, EventArgs e) {
        //Do something 
    } 
于 2012-07-10T13:19:24.383 に答える
1

これを試してみてくださいあなたを助けるかもしれません

    bUpdate.Click += new System.EventHandler(this.bUpdate_OnClick);

protected void bUpdate_OnClick(object sender, EventArgs e) {


}
于 2012-07-10T14:42:48.363 に答える
1

ボタンにIDを付けると、すべてが正常に機能します。

bUpdate.Id = "btnUpdate";

于 2012-07-10T13:22:52.283 に答える