为什么我的Ajax控件在我的事件处理程序中没有正确的值?

时间:2010-04-08 15:17:55

标签: asp.net ajax updatepanel

我在UpdatePanel中有一个RadioButtonList。

说我点击第二个按钮(值“1”)。它回发,并命中我的事件处理程序 -

  • 我可以看看POST在Firebug中发布,它显然发送了正确的表单值“1”
  • 我可以使用断点捕获事件处理程序,并检查Request.Form并清楚地看到传入的值是“1”

但是,控件的SelectedValue(StatusButtons.SelectedValue)始终为“0”(实际上,它是最初加载页面时的任何内容 - 通常为“0”)。

还有其他方法我应该在RadioButtonList中选择值吗?

<asp:UpdatePanel runat="server" UpdateMode="Always">
    <ContentTemplate>
         <asp:RadioButtonList OnSelectedIndexChanged="StatusButtons_OnSelectedIndexChanged" RepeatDirection="Horizontal" AutoPostBack="true" ID="StatusButtons" runat="server">
            <asp:ListItem Value="0">Foo</asp:ListItem>
            <asp:ListItem Value="1">Bar</asp:ListItem>
            <asp:ListItem Value="2">Baz</asp:ListItem>
         </asp:RadioButtonList>       
    </ContentTemplate>
</asp:UpdatePanel>

1 个答案:

答案 0 :(得分:0)

原来我是个白痴。我不承认Ajax回发经历了整个页面生命周期。我在某种程度上已经知道它只运行它正在调用的回发方法。

果然,在Page_Load中,我正在初始化此控件的值...所以我在每次回发时重新初始化它。

傻。