[ad_1]
こんにちは、
別のユーザー コントロール 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 プロパティを設定するだけで十分です。
[ad_2]
コメント