簡體   English   中英

刷新后,RadioButton的CheckedChanged消失

[英]RadioButton's CheckedChanged disappears after refresh

我有一個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;

誰能解釋一下?

找到了解決我問題的方法。

似乎是AjaxToolKit中的錯誤。 看這個:

ASP.NET單選按鈕檢查的更改事件未觸發第一個單選按鈕

為我工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM