我正在使用DevExpress v10。我有一个带有AspxPopupControl的ASP.NET页面。 AspxPopupControl包含几个文本框AspxTextBox。
我需要以下功能:当用户单击AspxPopupControl弹出窗口标题中的“关闭”按钮时,检查自弹出窗口打开以来AspxTextBox字段中是否有更改。如果有,则确认'你真的想关闭窗口而不保存吗?'
我打算按如下方式实现它:处理AspxClientTextBox控件的客户端事件ValueChanged。在这样的处理程序中,我可以设置一个标志,然后在Closing事件的客户端处理程序中分析它(AspxClientPopupControl)
但问题是:如果我在AspxTextBox中更改某些内容然后立即单击“关闭”按钮,则关闭事件将被触发FIRST并且关闭后将触发ValueChanged事件!
这不允许我做我想做的事。
这里有解决方案吗?
答案 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>