我在页面上有一个asp:Repeater,其中包含< input type =“radio”元素。我很欣赏asp:RadioButtonList控件可以用来做这个,但问题是在一些单选按钮后我们还需要一个文本框,当点击转发器中的相关单选按钮时使用Javascript启用(而转发器中的所有其他文本框)被禁用),因此决定使用原生HTML元素。
问题在于验证;如果发布时文本框为空白,我们要显示警告并强制用户输入文本,保留选中的单选按钮。但是,在<%#...%>之间访问时,似乎没有填充Request.Form集合。占位符,因此无法检测所选单选按钮以将“已检查”属性写入。
有关如何从Request.Form集合回读以检查相应的单选按钮输入元素的任何建议吗?
编辑 - 根据要求,下面是转发器中使用的HTML标记:
<asp:Repeater ID="choiceRepeater" runat="server">
<ItemTemplate>
<input type="radio"
name="choice<%#
((SurveyAnswer)Container.DataItem).SurveyQuestion.SurveyQuestionID.ToString() %>"
id="answerRadio"
value="<%# ((SurveyAnswer)Container.DataItem).SurveyAnswerID %>"
onclick="enableBox(this);" />
<asp:Label ID="answerText"
runat="server"
Text="<%# ((SurveyAnswer)Container.DataItem).AnswerText %>" />
<span id="textArea"
runat="server"
visible="<%# (((SurveyAnswer)Container.DataItem).EnableTextField)%>" >
<input type="text"
name="text<%# ((SurveyAnswer)Container.DataItem).SurveyAnswerID %>"
id="text<%# ((SurveyAnswer)Container.DataItem).SurveyAnswerID %>"
disabled="disabled" />
</span><br />
</ItemTemplate>
</asp:Repeater>
如上所述,尝试访问&lt;%#...#&gt;中的Request.Form [..]集合时,不会返回任何内容。试图确定上次发布的内容的元素。
提前致谢,
克里斯