我的链接按钮的OnClick事件永远不会被触发

OnClick event of my LinkButton is never triggered

本文关键字:永远 事件 链接 按钮 OnClick 我的      更新时间:2023-09-26

我想根据下拉列表中的选定项生成动态下拉列表和链接按钮。这里的场景:1. 用户从"ddlFamily"中选择一个姓氏2. 将创建动态 ddls 和"提交答案"链接按钮。这些 ddl 将包括一些与所选系列相关的特定问题。用户将从动态创建的 ddls 中选择答案。3.用户将单击链接按钮并保存答案。

我的问题是,当我单击链接按钮时,按钮单击事件"SubmitAnswers_Click"永远不会触发。我找不到并解决原因。我的代码如下:

protected void ddlFamily_SelectedIndexChanged(object sender, EventArgs e)
            {
                questions = GetQuestions();
                int counter = 0;
                while (counter < questions.Count)
                {
                    DropDownList ddl = new DropDownList();
                    ddl.ID = "dynamicDDL" + counter.ToString();
                    ddl.Items.Add(questions[counter]);
                    String q2 = "SELECT ANSWERID, answer FROM Answer WHERE questionID="+questionIDs[counter];
                    ReturnResultViaQueryToDB(answers, answerIDs, q2);
                    for (int i = 0; i < answers.Count; i++)
                    {
                        ddl.Items.Add(answers[i]);
                    }
                    pnlFamily.Controls.Add(ddl);
                    counter++;
                    answers.Clear();
                    answerIDs.Clear();
                    howManyDDLCreated++;
                }
                if (howManyDDLCreated > 0)
                {
                    LinkButton lb = new LinkButton();
                    lb.ID = "bnSubmitAnswers";
                    lb.Attributes.Add("AutoPostBack", "true");
                    lb.ForeColor = System.Drawing.Color.Yellow;
                    lb.Click += new EventHandler(submitAnswers_Click);
                    lb.Text = "Submit Answers";
                    pnlProvince.Controls.Add(lb);
                }
            }
        }
        protected void submitAnswers_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < howManyDDLCreated; i++)
            {
                var currentDynamicDDL = (DropDownList)Page.FindControl("DynamicDDL" + i);
                String s = currentDynamicDDL.Text;
//save answers here
            }
        }

提前感谢您的所有帮助。我很感激。

顺便说一下,我检查了提出的问题,发现了一些类似的问题。但是,不幸的是,我找不到合适的答案。非常抱歉,如果有的话,如果我错过了。

真诚地

这取决于 Web 表单的页面生命周期。如果将控件添加到 aspx 标记,则隐藏的代码将在回发时处理这些控件的创建。如果创建动态控件,则需要在生命周期的适当阶段自行重新创建它们。Page_init事件是最安全的位置,应允许视图状态填充状态并触发事件。您将需要重新附加事件处理程序。Microsoft会在这里告诉你更多。