Asp.net button/htmlbutton事件不会触发

本文关键字:事件 htmlbutton net button Asp | 更新日期: 2023-09-27 18:17:57

我知道它之前被问过,但我不能得到事件触发,即使我创建按钮和事件每OnInit。我正在做一个Sharepoint 2010 web部件和填写一个单选按钮列表的值,并添加一个提交按钮的web部件每次OnInit被调用。Page_Load方法为空。我也试着把paintQnA调用在一个重写的CreateChildControls与相同的结果。

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        ...//Get data needed to create gui
        paintQnA(dr, dt, currentRow);
    }
    void paintQnA(DataRow dr, DataTable dt, int currentRow)
    {
        Panel p = new Panel();
        p.ID = currentRow.ToString();
        Label lbl= new Label();
        lbl.Text = dr["Title"].ToString();
        RadioButtonList rbl = new RadioButtonList();
        rbl.ID = currentRow.ToString() + "1";
        HtmlButton submitBtn = new HtmlButton();
        submitBtn.ID = currentRow.ToString();
        submitBtn.InnerText = "Click";
        submitBtn.ServerClick += new EventHandler(submitBtn_Click);
        ...//fill the radiobuttonlist with data
        this.Controls.Add(p);
        p.Controls.Add(lbl);
        p.Controls.Add(rbl);
        p.Controls.Add(submitBtn);
        UpdatePanel1.ContentTemplateContainer.Controls.Add(p);
    }
    void submitBtn_Click(object sender, EventArgs e)
    {
        ...//Should display another dynamically created panel but is never reached.
    }

Asp.net button/htmlbutton事件不会触发

发现错误:

p.ID = currentRow.ToString();
submitBtn.ID = currentRow.ToString();

他们有相同的ID…它们不能有相同的ID。

在您的代码中,我可以看到您将相同的ID分配给PanelsubmitBtn。因此,由于Id重复,您的click事件不会触发。

尝试不同的IDs面板和提交按钮,然后它应该工作良好!