Here's a scenario. In this particular case, I'm using a radio button instead of radio button list. However, this fix might also apply to latter since both controls are very much alike. In my case, I have the radio button pre-populated with data from a datasource, for this example, let's say rdo1 is selected. The idea here is to show the textbox depending on what radio button is selected. AJAX was used to enable partial postbacks within each selection of radio button items.
The issue is when an option within the radio button is selected during the initial load, the CheckChanged event doesn't fire up anymore if ever you select that initial option again. If the page loaded as rdo1 being selected and I clicked on rdo2, the textbox disappears -but if I click back on rdo1, it doesn't do a postback anymore hence, the textbox remains visible. Luckily enough, my radio buttons are close enough to the textbox that the fix needed to make it work, is fine for now.
Even though the AsyncPostBackTrigger is set to an "outside" control such as the rdo1 and rdo2, it somehow loses its postback attribute. In any case, by moving the two radio buttons inside the UpdatePanel fixes this issue. I hope that this helps some people out there who comes across this weird issue. The before and after code is provided below for illustration.
Before:
<asp:RadioButton ID="rdo1" runat="server" GroupName="group" Text="Textbox is visible"
AutoPostBack="true" />
<asp:RadioButton ID="rdo2" runat="server" GroupName="group" Text="Textbox is not visible"
AutoPostBack="true" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="mydiv" runat="server">
<asp:TextBox ID="textbox1" runat="server" />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rdo1" EventName="CheckedChanged" />
<asp:AsyncPostBackTrigger ControlID="rdo2" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>
After:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:RadioButton ID="rdo1" runat="server" GroupName="group" Text="Textbox is visible"
AutoPostBack="true" />
<asp:RadioButton ID="rdo2" runat="server" GroupName="group" Text="Textbox is not visible"
AutoPostBack="true" />
<div id="mydiv" runat="server">
<asp:TextBox ID="textbox1" runat="server" />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rdo1" EventName="CheckedChanged" />
<asp:AsyncPostBackTrigger ControlID="rdo2" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>