尽管autopostback设置为true,RadioButtonList仍未回发

时间:2017-03-29 12:45:27

标签: c# asp.net radiobuttonlist autopostback

我在尝试将单选按钮列表选中的索引更改触发时遇到问题,虽然我对任何其他asp控件的回发没有任何问题,但是单选按钮列表给我带来了麻烦。如果你们中的一个人能够辨别出错误的原因,我会包含我的asp代码和c#codebehind。

我有8个单选按钮列表,所有这些都位于自己的更新面板中,设置为始终更新,每个单选按钮列表都将autopostback设置为true。

我有代码在逻辑上改变两个asp:标签,一个根据radiobuttonlist选择改变平均分数,一个根据平均分数的值分配风险等级。

<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>

现在我的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";
    }
}

这应该回复,我绝对无法确定为什么我的表单上的每个其他控件都回复得很好而不是这些。有人能够帮助确定原因吗?没有关于堆栈溢出的其他问题,这适用于我的问题。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您的标签位于更新面板之外,这就是它无法正常工作的原因。所有单选按钮都回发没有任何问题。

我建议你将所有控件包装在一个更新面板中。

请在此处进一步阅读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>