我的情况是我在ASP.NET中有一个页面。在这个页面中,我有一个RadioButtonList,它包含一个问题的5个解决方案。 RadioButtonList由一个具有这些解决方案的对象提供。
我有一个计时器,每秒运行一次,以更新大量的图形控件。一切正常,请选择RadioButtonList。
这就是发生的事情:
当我在RadioButtonList中选择一个项目并且计时器勾选时,RadioButtonLIst值的selectedIndex为0.
这意味着它选择列表中的第一项。但是,如果我点击一个项目,其中包含“是”值(值字段可以为“否”或“是”,则它将保留在此项目中。
首先,我不知道为什么计时器重新选择我的RadioButtonList选择,因为任何其他Page_Load事件什么都不做。即使这是有道理的,我也不知道为什么它只是重新选择了一些答案..
我有以下HTML代码:
<asp:Timer ID="AssignmentTimer" runat="server" Interval="1000">
</asp:Timer>
<asp:UpdatePanel ID="FightUpdatePnl" runat="server" UpdateMode="Always" ChildrenAsTriggers="True">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="AssignmentTimer" EventName="Tick"/>
</Triggers>
<ContentTemplate>
<asp:Panel ID="AssignmentDiv" runat="server" CssClass="FightDiv">
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
我有以下代码:
protected void Page_Load(object sender, EventArgs e)
{
SetupPage();
}
private void SetupPage()
{
RadioButtonList list = new RadioButtonList();
list.DataSource = question.PossibleSolution;
list.DataTextField = "Content";
list.DataValueField = "IsAnswer";
list.DataBind();
AssignmentDiv.Controls.Add(list);
}
总而言之,我的问题是......
当计时器滴答时,RadioButtonList重新选择项目0.然而,这不一致,有时它不会重新选择。 我宁愿它根本没有重新选择! :)
答案 0 :(得分:0)
我不确定是否没有其他可能的原因,但是你不应该在postbacks的Page_Load中绑定你的RadioButtonList。 否则选择会丢失。
if (!IsPostBack) {
SetupPage();
}
仅在首次加载页面和更改其数据源时(f.e在事件处理程序中更新问题时)执行此操作。