回避策がうまくいったことをうれしく思いますが、このページにアクセスする他のユーザーの利益のために、クライアント側の検証を無効にすることは、受け入れられる解決策とはほど遠いものです. だからここに行きます:
しかし、なぜそれが周りにあったときにだけ起こったのかUpdatePanel
は、私にはまだ不明です。
他の人が述べたように、あなたが抱えていた問題は、検証の試みが失敗したためにそれ以上のポストバックが妨げられている可能性が最も高いです.
参照:検証後にフォームがポストバックされないのはなぜですか?
Page_BlockSubmit
クライアント側の検証が失敗した場合に true に設定されるという変数があります。
function Page_ClientValidate(validationGroup) {
....
Page_BlockSubmit = !Page_IsValid;
return Page_IsValid;
}
したがって、 aが a__doPostBack
の一部として発生する場合、次OnSelectedIndexChanged
のDropDownList
チェックがあります。
function ValidatorCommonOnSubmit() {
....
var result = !Page_BlockSubmit; /* read the value */
....
Page_BlockSubmit = false; /* reset it */
return result;
}
これは初めてブロックしますが、フラグをクリアするため、次のポストバック試行は機能するはずです。
私の場合、 のイベントの回避策は、DropDownList
クライアントOnSelectedIndexChanged
側のイベントにスニペットを追加することonchange
でした:
<asp:DropDownList runat="server" ID="SomeDropDownList" OnSelectedIndexChanged="AlwaysDoSomething"
onchange="resetValidationState(this);">
....
</asp:DropDownList>
<script type="text/javascript">
function resetValidationState() {
// clear any postback blocks, which occur after validation fails:
window.Page_BlockSubmit = false;
}
</script>
そのスニペットをそれ自体に入れることでうまくいくかもしれませんonchange
。