我需要将窗口的位置和大小保存到DB表中,因此:
在事件"创建"中 ->保存位置和大小
在事件"移动" ->保存位置
在事件"调整大小"上 ->保存大小
在事件"最大化" ->保存"最大化",
但不是位置(0,0)和size(desktopsize)
- 这种情况的必要条件:
- 用户注销并在 中登录
- 推动"还原" -button
- 窗口应在最大化之前收缩到大小(和位置)
当旧位置和大小保留在数据库中时,才能实现这一点。
某些事件开始某些功能,以通过Ajax到DB存储值,如下所示:
resize : saveSize()
移动:savePosition()
最大化: saveMaximize()
还原:restoreWindow()
但我不知道如何处理这些事件,因为事件没有被解雇,因为我希望"被解雇。因此,我需要存储的价值在有机会获得它们之前被覆盖。我记录了事件:
(案例 ->事件(S))
打开窗口:
1. 移动
2. 调整
3. 移动
那还可以
"单击"最大化:
1. 调整
2. 移动
3. 最大化
位置和尺寸值被覆盖,但只需要保存标志"最大化":true
"单击"还原:
1. 移动
2. 还原
3. 调整大小
位置保存到DB中,然后才能从DB到还原的"旧"值
移动窗口:
- 移动
一切都很好
如何处理这个??
不要手动执行此操作,而是使用组件状态处理:http://docs.sencha.com/extjs/4.2.2/# !/#!/example/sample/state/state/state.html
陷入了我自己的想法。只是忘了问
" extjs如何管理:最大化和还原"。
状态存储在窗口对象本身中:
scope = win.events.maximize.listeners[0].scope;
(object) size = scope.restoreSize
[] position = scope.restorePos
因此,事件"最大化"是最后触发的,因此我可以将以前的状态写入db,我认为这有点脏,因为我不知道为什么Extjs频繁地发射事件