繁体   English   中英

动态添加控件/事件无效

[英]Add control/event dynamically doesn't work

任何帮助,将不胜感激 -

这是我的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永远不会被调用。

我想念什么吗?

尝试为按钮指定一个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 
    } 

给按钮一个ID,一切都会正常。

bUpdate.Id = "btnUpdate";

试试这个可能对你有帮助

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

protected void bUpdate_OnClick(object sender, EventArgs e) {


}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM