0

次のようにasp.netページにハードコードされたradiobuttonlistがあります。

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

ラジオボタンリストの値を最初に変更したときはすべて正常に機能しますが、2回目に変更しても機能しません。なぜこれが起こるのか誰かが知っていますか?どんなアドバイスも素晴らしいでしょう、ありがとう!

注:私が行ったテストから、これはOnSelectedIndexChangedが期待どおりに機能していない唯一のコントロールです。残りのコントロールのイベントは正しく発生します

4

1 に答える 1

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>
于 2012-07-05T17:12:29.573 に答える