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() メソッドを呼び出します。

しかし、値をクリックすると、同じ値を再度クリックすると、サーバーへの呼び出しが行われますが (Page Load が呼び出されます)、メソッド ddAppartiene_SelectedIndexChanged() は呼び出されません。

では、onselectedindexchanged はクライアント側では機能しますが、サーバー側では機能しませんか? 私はそうは思わない...

どこが間違っていますか?

4

2 に答える 2

4

私は初心者ですが、onselectedindexchangedイベントは、選択したインデックスが実際に変更されたときにのみ発生しませんか?同じ値を再度クリックしても変更はないため、イベントは発生しません。

于 2012-11-22T12:03:02.103 に答える
1

イベント名に「SelectedIndexChanged」と表示されているように、インデックスを起動する前にインデックスを変更する必要があります。同じアイテムを2回クリックしても、インデックスは前と同じであるため、変更されていません。この時点では、クリックするだけで変更されていないと思います。

それを避けるために私がすることは、実際にOKボタンを提供することです。ボタンをクリックするたびに、選択した値が常に選択されるか、変更されるかどうかが決まります。

于 2012-11-22T12:07:31.847 に答える