0

我有一个更新面板:

<asp:UpdatePanel ID="upAppartiene" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:DropDownList ID="ddAppartiene" runat="server" AutoPostBack="true" onselectedindexchanged="ddAppartiene_SelectedIndexChanged">
            <asp:ListItem Text="---" Value="0"></asp:ListItem>
            <asp:ListItem Text="Value 1" Value="1"></asp:ListItem>
            <asp:ListItem Text="Value 2" Value="2"></asp:ListItem>
        </asp:DropDownList>
    </ContentTemplate>
</asp:UpdatePanel>

当我每次选择不同的值时,一切正常:它调用服务器端的上下文、页面加载和 ddAppartiene_SelectedIndexChanged() 方法。

但是,如果我单击一个值,而不是重新单击相同的值,它会调用服务器(调用页面加载),但不会调用 ddAppartiene_SelectedIndexChanged() 方法。

那么,onselectedindexchanged 在客户端工作,但在服务器端不行?我不这么认为...

我哪里错了?

4

2 回答 2

4

我只是一个新手,但 onselectedindexchanged 事件不会仅在所选索引实际更改时触发?如果您重新单击相同的值,则不会发生任何变化,因此不会触发事件。

于 2012-11-22T12:03:02.103 回答
1

就像事件名称说“SelectedIndexChanged”一样,索引需要在触发之前更改。当您两次单击同一个项目时,索引仍然与前一个相同,因此没有更改。在这一点上,我认为它只是一个点击而不是改变。

我要避免这种情况实际上是提供一个确定按钮。每当您单击按钮时,始终会选择、更改或不选择所选值。

于 2012-11-22T12:07:31.847 回答