2

ページに次のチェックボックスがあります。

<asp:CheckBox ID="rbBuilding" runat="server" AutoPostBack="True" OnCheckedChanged="HandlerPackageOnCheckedChanged" Checked="True" CausesValidation="False"   />
<asp:CheckBox ID="rbContent" runat="server" AutoPostBack="True" OnCheckedChanged="HandlerPackageOnCheckedChanged" CausesValidation="False" />

クリックされたチェックボックスの組み合わせに基づくポストバックのロジックがあります。1つのケースを除いて、すべてが正常に機能しています。

独自の検証グループ内にいくつかの検証がある追加のtelerikradwindowを開きます。検証エラーでウィンドウを閉じた場合、そのチェックボックスのいずれかを最初にクリックしてもポストパックは実行されません。

ファーストクリックのみが機能していません。次にクリックすると、すべてが正常に機能しています。独自の検証グループにチェックボックスを追加し、ケーシングの検証をtrueに変更しようとしました。しかし、動作はまったく同じです。そのチェックボックスのonclickにtestjavascriptメソッドを追加すると、このメソッドは問題なく起動されます。ポストバックはありません。

また、ウィンドウを閉じるときにウィンドウ検証グループのすべてのバリデーターをリセットしようとしましたが、リセットされますが、動作がチェックされず、最初のクリックが機能しません。

更新

もう1つチェックを行い、JavaScriptで実行した場合にのみ発生することに気付きました。

window.Page_ClientValidate("MyGroup")

ポップアップウィンドウでいくつかの計算を行う前に、これを行う必要があります。動的バリデーター中、検証可能なコントロールを更新すると、検証が失敗した場合でも、すべてが正しく機能します。したがって、問題は*Page_ClientValidate*です。

4

1 に答える 1

2

これは古い質問であることは知っていますが、ほぼ正確な問題に遭遇し、次のリンクのおかげで問題を解決できました。

ポストバックとコントロールの 2 回のクリックに関する問題

チェックボックスのクリックイベント用のJavaScriptイベントハンドラーを追加するために、このコードをコードビハインドに追加することになりました。

Checkbox1.Attributes.Add("onclick", "checkboxChanged();");

次に、次の JavaScript を追加しました。

function checkboxChanged(arg1) {
  Page_BlockSubmit = false;
}

私の状況のチェックボックスも、CausesValidation を false に設定するように設定されていましたが、この修正には必要ないと思います。うまくいけば、これは誰かを助けます。

于 2015-03-23T16:28:16.823 に答える