【发布时间】:2017-02-18 04:41:19
【问题描述】:
我在 AJAX 面板中有一个单选按钮列表。这是单选按钮列表:
<asp:RadioButtonList ID="RadioButtonList" runat="server" TextAlign="Right" AutoPostBack="true">
<asp:ListItem Text="Option3" Value="Option3" Selected="True" />
<asp:ListItem Text="Option1" Value="Option1" />
<asp:ListItem Text="Option2" Value="Option2" />
</asp:RadioButtonList>
我有一个函数可以根据保存的设置加载值。它看起来像这样:
string selectedOption = savedRecord.RadioButtonListValue.ToString();
RadioButtonList.Items.FindByValue(selectedOption).Selected = true;
如果我没有更改所选选项,它似乎只能正确加载该值。
- 如果我加载页面,加载设置将正确设置为保存的选项。
- 如果我加载页面,更改选项,然后加载设置,它不会更改选项。
我已尝试将 AutoPostBack 设置为 true 和 false,但它似乎并没有改变结果。有什么想法吗?
我已经能够硬编码一个值并且它似乎总是正确加载:
//Working
RadioButtonList.Items.FindByValue("Option1").Selected = true;
//Not-working
string selectedOption = savedRecord.RadioButtonListValue.ToString(); //"Option1"
RadioButtonList.Items.FindByValue(selectedOption).Selected = true;
【问题讨论】:
-
您如何以及在哪里保存数据?
-
它被保存为 SQL 数据库中的 XML 字符串。我已经设置了断点并在加载数据时验证了它是正确的值。一旦用户选择“加载保存的设置”选项,数据就会被加载。
-
您是否确认 selectedOption 包含要搜索的正确值?
-
是的。我越过设置值的行并检查了 RadioButtonList.SelectedValue ,它显示了正确的选项。但它不会在屏幕上显示更改。