I am working a web form and I am having a bit of trouble. I have a radio button list on the page for the user to select an item from. Depending on their selection, I would like for a field to appear on the screen for them to elaborate their request.
Here is my HTML for my radio button list and panels:
<div class="formInformation">
<div class="reason">
<h3><b>Why are you requesting a new badge?</b></h3>
<asp:RadioButtonList ID="rblReason" runat="server" AutoPostBack="true"
RepeatDirection="Vertical" Width="350px"
onselectedindexchanged="rblReason_SelectedIndexChanged">
<asp:ListItem Text="Broken">Broken</asp:ListItem>
<asp:ListItem Text="Faded">Faded</asp:ListItem>
<asp:ListItem Text="Lost">Lost</asp:ListItem>
<asp:ListItem Text="NotWork">Doesn't Work</asp:ListItem>
<asp:ListItem Text="Name">Name Change</asp:ListItem>
<asp:ListItem Text="Title">Title Change</asp:ListItem>
<asp:ListItem Text="Dept">Dept/Location Change</asp:ListItem>
<asp:ListItem Text="Other">Other</asp:ListItem>
</asp:RadioButtonList>
</div>
<div class="reason">
<h3><b>Further Information:</b></h3>
<h4>*Fields will become visible depending on your selection to the left*</h4>
<asp:Panel ID="pnlLost" runat="server" Visible="False">
<div class="pnlText"><h5><b>Are you enrolled in QuickCharge?</b></h5></div>
<asp:RadioButtonList ID="rblLost" runat="server"
RepeatDirection="Horizontal" Width="350px">
<asp:ListItem>Yes</asp:ListItem>
<asp:ListItem>No</asp:ListItem>
</asp:RadioButtonList>
</asp:Panel>
<asp:Panel ID="pnlDoesNotWork" runat="server" Visible="False">
<div class="pnlText"><h5><b>Explain what doesn't work:</b></h5></div>
<asp:TextBox ID="txtNotWorking" runat="server" TextMode="MultiLine"
Width="225px"></asp:TextBox>
</asp:Panel>
<asp:Panel ID="pnlNameChange" runat="server" Visible="False">
<div class="pnlText"><h5><b>For name change:</b></h5></div>
<div class="pnlText">Submit request then contact HR: 770.836.9517</div>
</asp:Panel>
<asp:Panel ID="pnlTitleChange" runat="server" Visible="False">
<div class="pnlText"><h5><b>What is you new title?</b></h5></div>
<asp:TextBox ID="txtNewTitle" runat="server" TextMode="MultiLine"
Width="225px"></asp:TextBox>
</asp:Panel>
<asp:Panel ID="pnlDeptLocation" runat="server" Visible="False">
<div class="pnlText"><h5><b>What is your new Dept/Location?</b></h5></div>
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"
Width="225px"></asp:TextBox>
</asp:Panel>
<asp:Panel ID="pnlOther" runat="server" Visible="False">
<div class="pnlText"><h5><b>Elaborate:</b></h5></div>
<asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine"
Width="225px"></asp:TextBox>
</asp:Panel>
</div>
</div>
Here is my C# to display panels based on selection in the radio button list
protected void rblReason_SelectedIndexChanged(object sender, EventArgs e)
{
switch (rblReason.SelectedItem.Text)
{
case "Broken":
pnlLost.Visible = false;
pnlDoesNotWork.Visible = false;
pnlNameChange.Visible = false;
pnlTitleChange.Visible = false;
pnlDeptLocation.Visible = false;
pnlOther.Visible = false;
break;
case "Faded":
pnlLost.Visible = false;
pnlDoesNotWork.Visible = false;
pnlNameChange.Visible = false;
pnlTitleChange.Visible = false;
pnlDeptLocation.Visible = false;
pnlOther.Visible = false;
break;
case "Lost":
pnlLost.Visible = true;
pnlDoesNotWork.Visible = false;
pnlNameChange.Visible = false;
pnlTitleChange.Visible = false;
pnlDeptLocation.Visible = false;
pnlOther.Visible = false;
break;
case "NotWork":
pnlDoesNotWork.Visible = true;
pnlLost.Visible = false;
pnlNameChange.Visible = false;
pnlTitleChange.Visible = false;
pnlDeptLocation.Visible = false;
pnlOther.Visible = false;
break;
case "Name":
pnlNameChange.Visible = true;
pnlLost.Visible = false;
pnlDoesNotWork.Visible = false;
pnlTitleChange.Visible = false;
pnlDeptLocation.Visible = false;
pnlOther.Visible = false;
break;
case "Title":
pnlTitleChange.Visible = true;
pnlLost.Visible = false;
pnlDoesNotWork.Visible = false;
pnlNameChange.Visible = false;
pnlDeptLocation.Visible = false;
pnlOther.Visible = false;
break;
case "Dept":
pnlDeptLocation.Visible = true;
pnlLost.Visible = false;
pnlDoesNotWork.Visible = false;
pnlNameChange.Visible = false;
pnlTitleChange.Visible = false;
pnlOther.Visible = false;
break;
case "Other":
pnlOther.Visible = true;
pnlLost.Visible = false;
pnlDoesNotWork.Visible = false;
pnlNameChange.Visible = false;
pnlTitleChange.Visible = false;
pnlDeptLocation.Visible = false;
break;
}
}
Currently the "Broken", "Faded", "Lost", and "Other" cases work perfectly. Any ideas why the other four don't? I tried looking for spelling errors, but I didn't find any. Then again it could just be that I can't see my own mistakes.
Any assistance is appreciated!