【解決方法】選択したインデックス変更イベントのドロップダウンが正しく機能しない


こんにちは、

別のユーザー コントロール UC2 に登録されている 1 つのユーザー コントロール UC1 があります。
UC1 では、ドロップダウンが 1 つあり、同じものに対して onselectedindexchanged() イベントが発生しますが、ドロップダウンのインデックスを変更しても発生しません。

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
              </asp:DropDownList>
protected void DropDownList1_SelectedIndexChanged (object sender, EventArgs e) 
{
//some functionality
}

しかし、UC2にあるボタンをクリックすると、このイベントが発生しました

なぜこれが起こったのか教えてください。

解決策 4

自動ポストバックが True に設定されている場合、ページがレンダリングされた後、ドロップダウン (HTML では SELECT) の onchange イベントに JavaScript が追加され、ポストバックがトリガーされます。

ページがレンダリングされた後にソースを表示し、javascript がドロップダウンの onchange イベントに追加されているかどうかを確認します。

コード ビハインドのドロップダウンの onchange イベントに JavaScript を追加すると、ページのポストバックも停止する可能性があります。

解決策 2

あなたの説明を読んでもあまり言えませんが、DropDown の AutoPostBack プロパティを true に設定する必要があるようです。
この方法では、選択したインデックスを変更すると、ページは自動的にポストバックします。

あなたの場合、ボタンをクリックするとページのポストバックが発生し、ドロップダウンの選択したインデックスを変更すると、DropDownList1_SelectedIndexChanged イベントも発生します。

これが適切な解決策でない場合は、マークアップとコードを送信して、何が起こっているかを調査できるようにしてください。

解決策 3

DropDown の AutoPostBack プロパティを設定するだけで十分です。

コメント

タイトルとURLをコピーしました