Reputation: 11393
I don't know why my radiobuttonlist
fires only when i select the second list item !
My aspx :
<asp:Panel ID="pnl_select_sign" runat="server" Visible="false">
<asp:RadioButtonList ID="rb_select_sign" runat="server" AutoPostBack="true" RepeatDirection="Horizontal"
OnSelectedIndexChanged="rb_select_sign_SelectedIndexChanged" CausesValidation="false" AppendDataBoundItems="true">
<asp:ListItem Selected="True" Value="0">normal</asp:ListItem>
<asp:ListItem Value="1">abnormal</asp:ListItem>
</asp:RadioButtonList>
</asp:Panel>
<div class="events" dir="rtl">
<fieldset>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="pnl_PageNew_UC" runat="server" Width="100%">
</asp:Panel>
<asp:Panel ID="pnl_sign" runat="server" Width="100%" Visible="false">
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rb_select_sign" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</fieldset>
</div>
My .cs :
protected void rb_select_sign_SelectedIndexChanged(object sender, EventArgs e)
{
if (rb_select_sign.SelectedValue == "0")
{
pnl_PageNew_UC.Visible = true;
pnl_sign.Visible = false;
}
else
{
pnl_PageNew_UC.Visible = false;
pnl_sign.Visible = true;
}
}
Upvotes: 0
Views: 1515
Reputation: 17385
Well, your problem starts not when the selectedvalue =1
, it starts as soon as you set the visibility of the panels to true.
The problem itself is in your AsyncPostBackTrigger
, your trigger is outside the UpdatePanel and therefore no longer triggered.
This can easily be solved, put the RadioButtonList inside the ContentTemplate:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="pnl_select_sign" runat="server" >
<asp:RadioButtonList ID="rb_select_sign" runat="server" AutoPostBack="true" RepeatDirection="Horizontal" ... />
</asp:Panel>
<asp:Panel ID="pnl_PageNew_UC" runat="server" Width="100%">
</asp:Panel>
....
Upvotes: 1
Reputation: 7872
Try this code:
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="pnl_select_sign" runat="server">
<asp:RadioButtonList ID="rb_select_sign" runat="server" AutoPostBack="true" RepeatDirection="Horizontal"
OnSelectedIndexChanged="rb_select_sign_SelectedIndexChanged" CausesValidation="false"
AppendDataBoundItems="true">
<asp:ListItem Selected="True" Value="0">normal</asp:ListItem>
<asp:ListItem Value="1">abnormal</asp:ListItem>
</asp:RadioButtonList>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div class="events" dir="rtl">
<fieldset>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="pnl_PageNew_UC" runat="server" Width="100%">
123
</asp:Panel>
<asp:Panel ID="pnl_sign" runat="server" Width="100%" Visible="false">
312
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rb_select_sign" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</fieldset>
</div>
In Code behind:
protected void rb_select_sign_SelectedIndexChanged(object sender, EventArgs e)
{
if (rb_select_sign.SelectedValue == "0")
{
pnl_PageNew_UC.Visible = true;
pnl_sign.Visible = false;
}
else
{
pnl_PageNew_UC.Visible = false;
pnl_sign.Visible = true;
}
UpdatePanel1.Update();
}
Upvotes: 1