【问题标题】:RadioButton's CheckedChanged disappears after refreshRadioButton 的 CheckedChanged 刷新后消失
【发布时间】:2016-10-10 21:45:46
【问题描述】:

我有一个 ASP.Net 页面,其中包含许多在运行时动态生成的控件。每个控件都绑定到一个“更改事件”。一切都很好,除了带有 CheckedChanged 事件的 RadioButtons。

我第一次访问该页面时一切正常。但是第二次有些 RadioButtons 丢失了 CheckedChanged 事件。

在第一页访问时生成的 HTML 代码:

<input id="ctl00_masterContentPlaceHolder_question467b446b749c4252a4df1839ae81ee7fYesRadioButton" type="radio" name="ctl00$masterContentPlaceHolder$question467b446b749c4252a4df1839ae81ee7fRadioButtonGroup" value="question467b446b749c4252a4df1839ae81ee7fYesRadioButton" onclick="javascript:setTimeout('__doPostBack(\'ctl00$masterContentPlaceHolder$question467b446b749c4252a4df1839ae81ee7fYesRadioButton\',\'\')', 0)" tabindex="1">

<input id="ctl00_masterContentPlaceHolder_question467b446b749c4252a4df1839ae81ee7fNoRadioButton" type="radio" name="ctl00$masterContentPlaceHolder$question467b446b749c4252a4df1839ae81ee7fRadioButtonGroup" value="question467b446b749c4252a4df1839ae81ee7fNoRadioButton" onclick="javascript:setTimeout('__doPostBack(\'ctl00$masterContentPlaceHolder$question467b446b749c4252a4df1839ae81ee7fNoRadioButton\',\'\')', 0)">

第二次访问后(第二个 RadioButton 的 onclick 事件丢失):

<input id="ctl00_masterContentPlaceHolder_question467b446b749c4252a4df1839ae81ee7fYesRadioButton" type="radio" name="ctl00$masterContentPlaceHolder$question467b446b749c4252a4df1839ae81ee7fRadioButtonGroup" value="question467b446b749c4252a4df1839ae81ee7fYesRadioButton" onclick="javascript:setTimeout('__doPostBack(\'ctl00$masterContentPlaceHolder$question467b446b749c4252a4df1839ae81ee7fYesRadioButton\',\'\')', 0)" tabindex="1">

<input id="ctl00_masterContentPlaceHolder_question467b446b749c4252a4df1839ae81ee7fNoRadioButton" type="radio" name="ctl00$masterContentPlaceHolder$question467b446b749c4252a4df1839ae81ee7fRadioButtonGroup" value="question467b446b749c4252a4df1839ae81ee7fNoRadioButton" checked="checked">

编辑

控件被添加到 Page_Load 事件中:

System.Collections.Generic.List<CPM.Arda.Questionnaire.Base.Objects.QuestionRenderResult<System.Web.UI.Control>> questionRenderResults = _questionnaireParser.Render(questionnaireGroup, false);
            foreach (CPM.Arda.Questionnaire.Base.Objects.QuestionRenderResult<System.Web.UI.Control> questionRenderResult in questionRenderResults)
                questionnaireGroupControlsPanel.Controls.Add(questionRenderResult.QuestionControl);

Render() 方法内的代码:

    System.Web.UI.WebControls.RadioButton yesRadioButton = new System.Web.UI.WebControls.RadioButton();
    yesRadioButton.ID = "question" + questionnaireGroupQuestion.Id.ToString().Replace("-", "") + "YesRadioButton";
    yesRadioButton.Text = "Ja";
    yesRadioButton.GroupName = "question" + questionnaireGroupQuestion.Id.ToString().Replace("-", "") + "RadioButtonGroup";
    yesRadioButton.TabIndex = tabIndex;
    yesRadioButton.Enabled = !_readOnly;
    yesRadioButton.AutoPostBack = true;
    yesRadioButton.CheckedChanged += inputControl_ValueChanged;

    System.Web.UI.WebControls.RadioButton noRadioButton = new System.Web.UI.WebControls.RadioButton();
    noRadioButton.ID = "question" + questionnaireGroupQuestion.Id.ToString().Replace("-", "") + "NoRadioButton";
    noRadioButton.Text = "Nein";
    noRadioButton.GroupName = "question" + questionnaireGroupQuestion.Id.ToString().Replace("-", "") + "RadioButtonGroup";
    noRadioButton.Style.Add("margin-left", "10px");
    noRadioButton.Enabled = !_readOnly;
    noRadioButton.AutoPostBack = true;
    noRadioButton.CheckedChanged += inputControl_ValueChanged;

谁能解释一下?

【问题讨论】:

  • 在哪里添加控件,显示(相关)代码。
  • 你应该在 CreateChildControls 事件中添加你的控件
  • 我在第一篇文章中添加了更多信息
  • 在 CreateChildControls 事件中添加控件没有帮助
  • 似乎是 AjaxToolKit 中的一个错误。看看这个:stackoverflow.com/questions/37738031/…

标签: javascript c# html asp.net


【解决方案1】:

为我的问题找到了解决方案。

似乎是 AjaxToolKit 中的一个错误。看看这个:

ASP.NET Radio button checked changed event not firing for first radio button

为我工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-03
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2014-03-27
    • 2017-11-22
    相关资源
    最近更新 更多