Javascript 我的链接按钮的OnClick事件从未触发
我想根据dropdownlist中的selectedItem生成动态dropdownlist和链接按钮。以下是场景: 1.用户从“家庭”中选择家庭名称 2.将创建动态DDL和“submitAnswers”链接按钮。这些DDL将包括一些与所选系列相关的特定问题。用户将从动态创建的DDL中选择答案。 3.用户将单击链接按钮并保存答案 我的问题是,当我点击链接按钮时,按钮点击事件“SubmitAnswers\u click”从未被触发。我无法找到并解决原因。我的代码如下所示:Javascript 我的链接按钮的OnClick事件从未触发,javascript,c#,asp.net,linkbutton,Javascript,C#,Asp.net,Linkbutton,我想根据dropdownlist中的selectedItem生成动态dropdownlist和链接按钮。以下是场景: 1.用户从“家庭”中选择家庭名称 2.将创建动态DDL和“submitAnswers”链接按钮。这些DDL将包括一些与所选系列相关的特定问题。用户将从动态创建的DDL中选择答案。 3.用户将单击链接按钮并保存答案 我的问题是,当我点击链接按钮时,按钮点击事件“SubmitAnswers\u click”从未被触发。我无法找到并解决原因。我的代码如下所示: protected vo
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
}
}
protectedvoid ddl系列\u SelectedIndexChanged(对象发送方,事件参数e)
{
问题=获取问题();
int计数器=0;
while(计数器<问题数)
{
DropDownList ddl=新的DropDownList();
ddl.ID=“dynamicDDL”+counter.ToString();
ddl.Items.Add(问题[柜台]);
字符串q2=“选择应答ID,从应答中选择应答,其中questionID=“+questionID[计数器];
ReturnResultViaQueryToDB(答案、答案、第2季度);
for(int i=0;i0)
{
LinkButton lb=新的LinkButton();
lb.ID=“bSubmitanswers”;
lb.Attributes.Add(“AutoPostBack”、“true”);
lb.ForeColor=系统.Drawing.Color.Yellow;
lb.单击+=新建事件处理程序(提交者单击);
lb.Text=“提交答案”;
pnlProvince.Controls.Add(磅);
}
}
}
受保护的无效提交者单击(对象发送者,事件参数e)
{
for(int i=0;i
提前感谢您的帮助。我很感激
顺便说一下,我检查了被问到的问题,发现了一些类似的问题。然而,不幸的是,我找不到合适的答案。非常抱歉,如果有,如果我错过了
这取决于web表单的页面生命周期。如果将控件添加到aspx标记中,则代码将在回发时处理这些控件的创建。如果创建动态控件,则需要在生命周期的适当阶段自行重新创建它们。Page_init事件是最安全的位置,应该允许视图状态填充状态并触发事件。您需要重新附加事件处理程序。Microsoft将告诉您更多信息。谢谢您的回答。此处,应基于选定的族创建动态控件,因为每个族都有不同数量的问题。在这种情况下,如何在Page_init中创建DDL?请考虑页面加载或页面回发。您已经在页面加载中进行了创建。您的具体问题是动态添加的按钮没有触发其单击事件。重新创建page_init中的按钮就是您问题的答案。阅读我附加的链接,尝试了解页面的生命周期。这将帮助您回答DDL的另一个问题。如果有帮助,请随时将此标记为正确答案。抱歉,我仍然无法修复它。需要明确的是:当页面首先出现时,屏幕上只有一个ddl(系列)。用户选择一个项目,然后基于该项目,需要创建动态DDL。Page_init事件未到达所选项目,因为它是在SelectedIndex_更改之前触发的。那么,如何在不知道所选族的情况下在Page_init中创建DDL呢。当我尝试页面加载时,buttonClick事件再次未触发。您的问题是关于button事件未触发。您是否阅读了链接,在init中重新创建了按钮并触发了事件。在解决问题之前,您需要了解页面生命周期。你的问题是关于按钮点击的,所以先解决,然后再提出一个关于ddls的单独问题。