基本上我有一个放在UpdatePanel中的RadioButtonList,它位于另一个UpdatePanel内。一旦我在这个列表中选择了一个项目,它立即取消选择,当然由回发触发。现在,我的代码隐藏在任何地方都没有改变RadioList的selected属性。现在,假设viewstatemode = enabled,所选索引将在回发之间保留。但是当选择该项时会发生什么,它会立即被取消选择。
我的内部(嵌套)UpdatePanel代码如下所示。
<asp:UpdatePanel ID="OptionsUpdater" UpdateMode="Conditional" runat="server" ChildrenAsTriggers="true" ViewStateMode="Enabled">
<ContentTemplate>
<asp:Panel runat="server" ID="rightside" CssClass="column4 row2">
<%--Options Panel--%>
<div id="OptionsPanel">
<div style="padding: 2px; border-color: black; border-style: solid; border-width: 1px; background-color: white; position: relative; top: -45px; left: -40px; border-radius: 8px;">
<p class="bluegradientBG3 massheader"
style="margin-left: -5px; min-width: 305px; font-size: 1.5em; border-radius: 14px; font-family: Arial; text-align: center">
Options
</p>
<asp:RadioButtonList ID="OptionsRadioList" runat="server"
Height="120px" Width="269px"
AutoPostBack="true"
CellPadding="9"
CellSpacing="2"
ViewStateMode="Enabled"
>
<asp:ListItem Value="update">Update Existing Parts</asp:ListItem>
<asp:ListItem Value="add">Add New Parts</asp:ListItem>
<asp:ListItem Value="delete">Mass Delete</asp:ListItem>
</asp:RadioButtonList>
<asp:CheckBoxList ID="OptionsCheckList" runat="server" Height="100px" Width="269px"
OnSelectedIndexChanged="OptionsCheckList_SelectedIndexChanged">
<asp:ListItem Value="NTDs">Update NTDs Only</asp:ListItem>
<asp:ListItem Value="addpart">Add Part If None Assigned</asp:ListItem>
<asp:ListItem Value="changelocations">Change N/A Locations To Selected</asp:ListItem>
</asp:CheckBoxList>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
代码中的外部UpdatePanel方式如下所示:
<asp:UpdatePanel ID="OverallUpdater" UpdateMode="Conditional" runat="server" ChildrenAsTriggers="true">
<ContentTemplate>
//content omitted for brevity
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="viewapps" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="UpdateButton" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="FilterButton" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="OptionsRadioList" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
答案 0 :(得分:0)
在PostBack中,您是否在设置RadioButtonList的数据源?如果是这样,那就是重置它。
如果您想在第一次为用户加载页面时加载RBL的数据源,请将其置于条件内,如下所示:
if(!IsPostBack)
{
// Load your RBL with your data
}