0

DevExpress v10 を使用しています。AspxPopupControl を使用した ASP.NET ページがあります。AspxPopupControl には、複数のテキスト ボックス AspxTextBox が含まれています。

次の機能が必要です。ユーザーが AspxPopupControl ポップアップのヘッダーにある [閉じる] ボタンをクリックしたときに、ポップアップが開かれてから AspxTextBox フィールドで何かが変更されたかどうかを確認します。保存されている場合は、「保存せずにウィンドウを閉じますか?」という確認メッセージが表示されます。

AspxClientTextBox コントロールのクライアント側イベント ValueChanged を処理するために、次のように実装するつもりでした。このようなハンドラーでフラグを設定し、後でそれを Closing イベント (AspxClientPopupControl) のクライアント側ハンドラーで分析できます。

しかし、問題は、AspxTextBox で何かを変更してすぐに [閉じる] ボタンをクリックすると、最初に Closing イベントが発生し、Close 後に ValueChanged イベントが発生することです。

これでは、やりたいことができません。

ここで解決策はありますか?

4

1 に答える 1

1

Closingイベントは、引数としてASPxClientPopupWindowCancelEventArgsを受け取ります。これを使用して、終了イベントをキャンセルできます。

あなたはこの線に沿って何かをすることができます:

<dx:ASPxPopupcontrol>
    ...
    <ClientSideEvents Closing="popup_Closing" />
</dx:ASPxPopupControl>

<script type="text/javascript">

    function popup_Closing(s,e)
    {
        if (textbox1.GetText() == '' || ...) // or logic here
        {
            e.cancel = !confirm('You've empty fields. Continue anyway?');
        }
    }

</script>
于 2012-04-28T03:39:52.640 に答える