首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp.net按钮/htmlbutton事件不会触发

asp.net按钮/htmlbutton事件不会触发
EN

Stack Overflow用户
提问于 2013-06-11 23:14:46
回答 2查看 233关注 0票数 0

我知道之前有人问过这个问题,但是即使我在每个OnInit中创建按钮和事件,我也不能让事件触发。我正在做一个SharePoint2010 web部件,用值填充一个单选按钮列表,并在每次调用OnInit时向web部件添加一个提交按钮。Page_Load方法为空。我还尝试将paintQnA调用放在一个被覆盖的CreateChildControls中,结果相同。

代码语言:javascript
复制
    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.
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-12 17:27:58

找到错误:

代码语言:javascript
复制
p.ID = currentRow.ToString();
submitBtn.ID = currentRow.ToString();

它们有相同的ID...they不能有相同的ID。

票数 1
EN

Stack Overflow用户

发布于 2013-06-12 17:39:01

在您的代码中,我可以看到您为PanelsubmitBtn分配了相同的ID。因此,由于Id重复,您的单击事件不会被激发。

尝试不同的IDs面板和提交按钮,然后它应该可以正常工作!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17047684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档