0
votes

I'm having issues trying to get radio button list selected index changes to fire, and although I have no issues with postbacks on any other asp control, radio button lists are giving me trouble. I'll include my asp code and c# codebehind in the event one of you may be able to discern what's wrong.

I have 8 radio button lists, all within their own update panels that are set to always update, and each radio button list has autopostback set to true.

I have code behind logic changing two asp:labels, one changing the average scores based on the radiobuttonlist selections, and one assigning a risk level depending on the value of the average score.

<table class="td-table-bordered" style="width: 90%">
                    <tr>
                        <th>
                            <asp:Label ID="CategoryLabel" runat="server" Text="Category"></asp:Label>
                        </th>
                        <th>
                            <asp:Label ID="OccurrenceProbabilityLabel" runat="server" Text="Probability of Occurrence"></asp:Label>
                        </th>
                        <th>
                            <asp:Label ID="ProbabilityRatingLabel" runat="server" Text="Rating"></asp:Label><br />
                            <asp:Label ID="ProbabilityRatingLabel2" runat="server" Text="(L/M/H)"></asp:Label>
                        </th>
                        <th>
                            <asp:Label ID="OccurrenceImpactLabel" runat="server" Text="Impact of Occurrence"></asp:Label>
                        </th>
                        <th>
                            <asp:Label ID="ImpactRatingLabel" runat="server" Text="Rating"></asp:Label><br />
                            <asp:Label ID="ImpactRatingLabel2" runat="server" Text="(L/M/H)"></asp:Label>
                        </th>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label ID="BaseDesktopLabel" runat="server" Text="Base Desktop"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="BaseDesktopProbabilityLabel" runat="server" Text="Based on workspace/RBB assessment, what is the probability that this change could impact function, performance or availability of a base component?"></asp:Label>
                        </td>
                        <td>
                            <asp:UpdatePanel ID="DesktopProbabilityPanel" runat="server" UpdateMode="Always">
                                <ContentTemplate>
                                    <asp:RadioButtonList ID="DesktopProbabilityButtonList" runat="server" OnSelectedIndexChanged="DesktopProbabilityButtonList_SelectedIndexChanged" AutoPostBack="True">
                                        <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                        <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                        <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                    </asp:RadioButtonList>
                                </ContentTemplate>
                            </asp:UpdatePanel>

                        </td>
                        <td>
                            <asp:Label ID="BaseDesktopImpactLabel" runat="server" Text="If a problem did occur, what could be the extent of the impact to the operation of the workstation?"></asp:Label>
                        </td>
                        <td>
                            <asp:UpdatePanel ID="DesktopImpactPanel" runat="server" UpdateMode="Always">
                                <ContentTemplate>
                                    <asp:RadioButtonList ID="DesktopImpactButtonList" runat="server" OnSelectedIndexChanged="DesktopImpactButtonList_SelectedIndexChanged" AutoPostBack="True">
                                        <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                        <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                        <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                    </asp:RadioButtonList>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label ID="ProductivityLayerLabel" runat="server" Text="Productivity Layer"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="ProductivityLayerProbabilityLabel" runat="server" Text="Based on workspace/RBB engineering assessment, what is the probability that this change could impact function, performance or availability of a productivity application?"></asp:Label>
                        </td>
                        <td>
                            <asp:UpdatePanel ID="ProductivityProbabilityPanel" runat="server" UpdateMode="Always">
                                <ContentTemplate>
                                    <asp:RadioButtonList ID="ProductivityProbabilityButtonList" runat="server" OnSelectedIndexChanged="ProductivityProbabilityButtonList_SelectedIndexChanged" AutoPostBack="True">
                                        <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                        <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                        <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                    </asp:RadioButtonList>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                        <td>
                            <asp:Label ID="ProductivityLayerImpactLabel" runat="server" Text="If a problem did occur, what could be the extent of the impact to the operation of the productivity application?"></asp:Label>
                        </td>
                        <td>
                            <asp:UpdatePanel ID="ProductivityImpactPanel" runat="server" UpdateMode="Always">
                                <ContentTemplate>
                                    <asp:RadioButtonList ID="ProductivityImpactButtonList" runat="server" OnSelectedIndexChanged="ProductivityImpactButtonList_SelectedIndexChanged" AutoPostBack="True">
                                        <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                        <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                        <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                    </asp:RadioButtonList>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label ID="BusinessApplicationsLabel" runat="server" Text="Business Applications"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="BusinessApplicationsProbabilityLabel" runat="server" Text="Based on workspace engineering assessment, what is the probability that this change could impact function, performance or availability of a business application?"></asp:Label>
                        </td>
                        <td>
                            <asp:UpdatePanel ID="BusinessProbabilityPanel" runat="server" UpdateMode="Always">
                                <ContentTemplate>
                                    <asp:RadioButtonList ID="BusinessProbabilityButtonList" runat="server" OnSelectedIndexChanged="BusinessProbabilityButtonList_SelectedIndexChanged" AutoPostBack="True">
                                        <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                        <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                        <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                    </asp:RadioButtonList>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                        <td>
                            <asp:Label ID="BusinessApplicationsImpactLabel" runat="server" Text="If a problem did occur, what could be the extent of the impact to the operation of the business application?"></asp:Label>
                        </td>
                        <td>
                            <asp:UpdatePanel ID="BusinessImpactPanel" runat="server" UpdateMode="Always">
                                <ContentTemplate>
                                    <asp:RadioButtonList ID="BusinessImpactButtonList" runat="server" OnSelectedIndexChanged="BusinessImpactButtonList_SelectedIndexChanged" AutoPostBack="True">
                                        <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                        <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                        <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                    </asp:RadioButtonList>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label ID="DatacenterLabel" runat="server" Text="Datacenter/Infrastructure"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="DatacenterProbabilityLabel" runat="server" Text="What is the probability that this change could impact function, performance or availability of networks, infrastructure or web services used by the branch??"></asp:Label>
                        </td>
                        <td>
                            <asp:UpdatePanel ID="DatacenterProbabilityPanel" runat="server" UpdateMode="Always">
                                <ContentTemplate>
                                    <asp:RadioButtonList ID="DatacenterProbabilityButtonList" runat="server" OnSelectedIndexChanged="DatacenterProbabilityButtonList_SelectedIndexChanged" AutoPostBack="True">
                                        <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                        <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                        <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                    </asp:RadioButtonList>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                        <td>
                            <asp:Label ID="DataCenterImpactLabel" runat="server" Text="If a problem did occur, what could be the extent of the impact to the operation of the datacenter or infrastructure?"></asp:Label>
                        </td>
                        <td>
                            <asp:UpdatePanel ID="DataCenterImpactPanel" runat="server" UpdateMode="Always">
                                <ContentTemplate>
                                    <asp:RadioButtonList ID="DatacenterImpactButtonList" runat="server" OnSelectedIndexChanged="DatacenterImpactList_SelectedIndexChanged" AutoPostBack="True">
                                        <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                        <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                        <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                    </asp:RadioButtonList>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                    </tr>
                    <tr>
                        <td>&nbsp;</td>
                        <td style="text-align: right">
                            <asp:Label ID="OverAllRatingLabel" runat="server" Font-Bold="True" Text="Change Risks Overall Average Rating: "></asp:Label>
                        </td>
                        <td style="text-align: right">
                            <asp:Label ID="OverallRating" runat="server" Font-Bold="True"></asp:Label>
                        </td>
                        <td style="text-align: right">
                            <asp:Label ID="OverallRiskLabel" runat="server" Font-Bold="True" Text="Overall Risk: "></asp:Label>
                        </td>
                        <td style="text-align: right">
                            <asp:Label ID="OverallRisk" runat="server" Font-Bold="True"></asp:Label>
                        </td>
                    </tr>
                </table>

And now my c#

double averageRating, desktopProbabilityRating, desktopImpactRating, productivityProbabilityRating, productivityImpactRating, businessProbabilityRating, businessImpactRating, datacenterProbabilityRating, datacenterImpactRating = 0;

protected void DesktopProbabilityButtonList_SelectedIndexChanged(object sender, EventArgs e) {
    desktopProbabilityRating = Convert.ToDouble(DesktopProbabilityButtonList.SelectedValue);
    calculateAverage();   
}

protected void DesktopImpactButtonList_SelectedIndexChanged(object sender, EventArgs e) {
    desktopImpactRating = Convert.ToDouble(DesktopImpactButtonList.SelectedValue);
    calculateAverage();
}

protected void ProductivityProbabilityButtonList_SelectedIndexChanged(object sender, EventArgs e) {
    productivityProbabilityRating = Convert.ToDouble(ProductivityProbabilityButtonList.SelectedValue);
    calculateAverage();
}

protected void ProductivityImpactButtonList_SelectedIndexChanged(object sender, EventArgs e) {
    productivityImpactRating = Convert.ToDouble(ProductivityImpactButtonList.SelectedValue);
    calculateAverage();
}

protected void BusinessProbabilityButtonList_SelectedIndexChanged(object sender, EventArgs e) {
    businessProbabilityRating = Convert.ToDouble(BusinessProbabilityButtonList.SelectedValue);
    calculateAverage();
}

protected void BusinessImpactButtonList_SelectedIndexChanged(object sender, EventArgs e) {
    businessImpactRating = Convert.ToDouble(BusinessImpactButtonList.SelectedValue);
    calculateAverage();
}

protected void DatacenterProbabilityButtonList_SelectedIndexChanged(object sender, EventArgs e) {
    datacenterProbabilityRating = Convert.ToDouble(DatacenterProbabilityButtonList.SelectedValue);
    calculateAverage();
}

protected void DatacenterImpactList_SelectedIndexChanged(object sender, EventArgs e) {
    datacenterImpactRating = Convert.ToDouble(DatacenterImpactButtonList.SelectedValue);
    calculateAverage();
}

protected void calculateAverage() {
    averageRating = (desktopProbabilityRating + desktopImpactRating + productivityProbabilityRating + productivityImpactRating + businessProbabilityRating + businessImpactRating + datacenterProbabilityRating + datacenterImpactRating) / 8;
    OverallRating.Text = averageRating.ToString();
    if(averageRating <= 1) {
        OverallRisk.Text = "Low";
    }
    else if(averageRating > 1 && averageRating < 3) {
        OverallRisk.Text = "Med";
    }
    else if(averageRating >=3 || desktopProbabilityRating == 3 || desktopImpactRating == 3 || productivityProbabilityRating == 3 || productivityImpactRating == 3 || businessProbabilityRating == 3 || businessImpactRating == 3 || datacenterProbabilityRating == 3 || datacenterImpactRating == 3) {
        OverallRisk.Text = "High";
    }
}

This SHOULD be posting back, I absolutely can't determine why every other control on my form posts back just fine and not these. Would someone be able to help determine why? No other question on stack overflow concerning this applied to my problem.

Thanks so much in advance.

1

1 Answers

2
votes

Your labels are outside the update panels, that is why it is not working. All the radio buttons postback without any issue.

I would suggest you to wrap all the controls inside one update panel.

Please read further here https://forums.asp.net/t/1120428.aspx?Update+Label+outside+update+panel

<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Always">
                            <ContentTemplate>
<table class="td-table-bordered" style="width: 90%">
                <tr>
                    <th>
                        <asp:Label ID="CategoryLabel" runat="server" Text="Category"></asp:Label>
                    </th>
                    <th>
                        <asp:Label ID="OccurrenceProbabilityLabel" runat="server" Text="Probability of Occurrence"></asp:Label>
                    </th>
                    <th>
                        <asp:Label ID="ProbabilityRatingLabel" runat="server" Text="Rating"></asp:Label><br />
                        <asp:Label ID="ProbabilityRatingLabel2" runat="server" Text="(L/M/H)"></asp:Label>
                    </th>
                    <th>
                        <asp:Label ID="OccurrenceImpactLabel" runat="server" Text="Impact of Occurrence"></asp:Label>
                    </th>
                    <th>
                        <asp:Label ID="ImpactRatingLabel" runat="server" Text="Rating"></asp:Label><br />
                        <asp:Label ID="ImpactRatingLabel2" runat="server" Text="(L/M/H)"></asp:Label>
                    </th>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="BaseDesktopLabel" runat="server" Text="Base Desktop"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="BaseDesktopProbabilityLabel" runat="server" Text="Based on workspace/RBB assessment, what is the probability that this change could impact function, performance or availability of a base component?"></asp:Label>
                    </td>
                    <td>

                                <asp:RadioButtonList ID="DesktopProbabilityButtonList" runat="server" OnSelectedIndexChanged="DesktopProbabilityButtonList_SelectedIndexChanged" AutoPostBack="True">
                                    <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                </asp:RadioButtonList>


                    </td>
                    <td>
                        <asp:Label ID="BaseDesktopImpactLabel" runat="server" Text="If a problem did occur, what could be the extent of the impact to the operation of the workstation?"></asp:Label>
                    </td>
                    <td>
                              <asp:RadioButtonList ID="DesktopImpactButtonList" runat="server" OnSelectedIndexChanged="DesktopImpactButtonList_SelectedIndexChanged" AutoPostBack="True">
                                    <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                </asp:RadioButtonList>

                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="ProductivityLayerLabel" runat="server" Text="Productivity Layer"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="ProductivityLayerProbabilityLabel" runat="server" Text="Based on workspace/RBB engineering assessment, what is the probability that this change could impact function, performance or availability of a productivity application?"></asp:Label>
                    </td>
                    <td>

                                <asp:RadioButtonList ID="ProductivityProbabilityButtonList" runat="server" OnSelectedIndexChanged="ProductivityProbabilityButtonList_SelectedIndexChanged" AutoPostBack="True">
                                    <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                </asp:RadioButtonList>

                    </td>
                    <td>
                        <asp:Label ID="ProductivityLayerImpactLabel" runat="server" Text="If a problem did occur, what could be the extent of the impact to the operation of the productivity application?"></asp:Label>
                    </td>
                    <td>
                              <asp:RadioButtonList ID="ProductivityImpactButtonList" runat="server" OnSelectedIndexChanged="ProductivityImpactButtonList_SelectedIndexChanged" AutoPostBack="True">
                                    <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                </asp:RadioButtonList>

                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="BusinessApplicationsLabel" runat="server" Text="Business Applications"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="BusinessApplicationsProbabilityLabel" runat="server" Text="Based on workspace engineering assessment, what is the probability that this change could impact function, performance or availability of a business application?"></asp:Label>
                    </td>
                    <td>
                               <asp:RadioButtonList ID="BusinessProbabilityButtonList" runat="server" OnSelectedIndexChanged="BusinessProbabilityButtonList_SelectedIndexChanged" AutoPostBack="True">
                                    <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                </asp:RadioButtonList>

                    </td>
                    <td>
                        <asp:Label ID="BusinessApplicationsImpactLabel" runat="server" Text="If a problem did occur, what could be the extent of the impact to the operation of the business application?"></asp:Label>
                    </td>
                    <td>
                              <asp:RadioButtonList ID="BusinessImpactButtonList" runat="server" OnSelectedIndexChanged="BusinessImpactButtonList_SelectedIndexChanged" AutoPostBack="True">
                                    <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                </asp:RadioButtonList>

                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="DatacenterLabel" runat="server" Text="Datacenter/Infrastructure"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="DatacenterProbabilityLabel" runat="server" Text="What is the probability that this change could impact function, performance or availability of networks, infrastructure or web services used by the branch??"></asp:Label>
                    </td>
                    <td>
                               <asp:RadioButtonList ID="DatacenterProbabilityButtonList" runat="server" OnSelectedIndexChanged="DatacenterProbabilityButtonList_SelectedIndexChanged" AutoPostBack="True">
                                    <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                </asp:RadioButtonList>

                    </td>
                    <td>
                        <asp:Label ID="DataCenterImpactLabel" runat="server" Text="If a problem did occur, what could be the extent of the impact to the operation of the datacenter or infrastructure?"></asp:Label>
                    </td>
                    <td>
                         <asp:RadioButtonList ID="DatacenterImpactButtonList" runat="server" OnSelectedIndexChanged="DatacenterImpactList_SelectedIndexChanged" AutoPostBack="True">
                                    <asp:ListItem Text="High" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="Med" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="Low" Value="1"></asp:ListItem>
                                </asp:RadioButtonList>

                    </td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                    <td style="text-align: right">
                        <asp:Label ID="OverAllRatingLabel" runat="server" Font-Bold="True" Text="Change Risks Overall Average Rating: "></asp:Label>
                    </td>
                    <td style="text-align: right">
                        <asp:Label ID="OverallRating" runat="server" Font-Bold="True"></asp:Label>
                    </td>
                    <td style="text-align: right">
                        <asp:Label ID="OverallRiskLabel" runat="server" Font-Bold="True" Text="Overall Risk: "></asp:Label>
                    </td>
                    <td style="text-align: right">
                        <asp:Label ID="OverallRisk" runat="server" Font-Bold="True"></asp:Label>
                    </td>
                </tr>
            </table>
                                </ContentTemplate>
                        </asp:UpdatePanel>