AspxClientPopupControl:CloseButtonClick和ValueChanged

时间:2012-04-27 16:36:59

标签: devexpress

我正在使用DevExpress v10。我有一个带有AspxPopupControl的ASP.NET页面。 AspxPopupControl包含几个文本框AspxTextBox。

我需要以下功能:当用户单击AspxPopupControl弹出窗口标题中的“关闭”按钮时,检查自弹出窗口打开以来AspxTextBox字段中是否有更改。如果有,则确认'你真的想关闭窗口而不保存吗?'

我打算按如下方式实现它:处理AspxClientTextBox控件的客户端事件ValueChanged。在这样的处理程序中,我可以设置一个标志,然后在Closing事件的客户端处理程序中分析它(AspxClientPopupControl)

但问题是:如果我在AspxTextBox中更改某些内容然后立即单击“关闭”按钮,则关闭事件将被触发FIRST并且关闭后将触发ValueChanged事件!

这不允许我做我想做的事。

这里有解决方案吗?

1 个答案:

答案 0 :(得分: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>