RadioButtonList OnSelectedIndexChanged仅触发ONCE

时间:2012-07-05 17:05:14

标签: c# asp.net updatepanel postback radiobuttonlist

我有一个radiobuttonlist,硬编码到我的asp.net页面中,如下所示:

<asp:RadioButtonList runat="server" ID="rblOrientation" RepeatDirection="Horizontal"
    OnSelectedIndexChanged="rblOrientation_onSelectedIndexChanged" AutoPostBack="true">
    <asp:ListItem Text="Portrait" Value="P" Selected="True"></asp:ListItem>
    <asp:ListItem Text="Landscape" Value="L"></asp:ListItem>
</asp:RadioButtonList>

背后的代码如下:

protected void rblOrientation_onSelectedIndexChanged(object sender, EventArgs e)
{
    ddlPaperSize_onSelectedIndexChanged(sender, e);
}

基本上发生的是它调用另一个更新一堆值的函数 在更新面板内。这也是硬编码的,看起来像这样:

<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <asp:Label ID="lblPaperWidth" runat="server" />
        <span id="txtUOMWidth" runat="server" />&nbsp;×
        <asp:Label ID="lblPaperHeight" runat="server" />
        <span id="txtUOMHeight" runat="server" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="rblOrientation" />
        <asp:AsyncPostBackTrigger ControlID="ddlPaperSize" />
        <asp:AsyncPostBackTrigger ControlID="ddlScale" />
    </Triggers>
</asp:UpdatePanel>

第一次更改radiobuttonlist的值时,一切正常,但是,如果我第二次尝试它不起作用。有谁知道为什么会这样?任何建议都会很棒,谢谢!

注意:从我所做的测试中,这是OnSelectedIndexChanged没有按照我的预期行事的唯一控件。其余控件的事件正确触发

1 个答案:

答案 0 :(得分:0)

试试这个代码,对我来说很好。

<asp:ScriptManager ID="smMain" runat="server" />

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" ChildrenAsTriggers="true" >      
      <ContentTemplate>
        <asp:RadioButtonList runat="server" ID="rblOrientation" RepeatDirection="Horizontal"
             OnSelectedIndexChanged="rblOrientation_onSelectedIndexChanged" AutoPostBack="true">
         <asp:ListItem Text="Portrait" Value="P" Selected="True"></asp:ListItem>
         <asp:ListItem Text="Landscape" Value="L"></asp:ListItem>
        </asp:RadioButtonList>

      </ContentTemplate>
    </asp:UpdatePanel>