我现在在用extjs的框架开发一个项目,纯ajax的,页面无任何刷新。现在有一个问题,比如我打开一个员工列表,这是一个TabPanel,在TabPanel里autoLoad一个员工列表的页面,在这个页面上可以对员工进行增删改的操作。当点击增加按扭时,弹出一个Window。我现在的作法是,显示员工列表的JS和增加员工信息的FormPanel都放在employee.js中,这样弹出Window,直接在Window的items中放一个formPanel因为同处于一个js中,所以在点击提交时,可以直接获取到Window对象,从而将弹出窗口关闭。这样一来,显示员工列表的JS和新增员工的JS都处于同一JS文件中,使这个文件比较的臃肿,看得眼花撩乱。现在我想显示列表的JS和构建FormPanel的JS放在不同的JS文件,即点击增加按扭的时候弹出一个Window在Window中autoLoad一个employeeForm.jsp的页面,在这个页面中写JS构造FormPanel,现在另一个问题出现了,Window对象在employeeList.jsp中,现在假如终端客户填写好员工资料后,在employeeForm.jsp中提交数据,又如何在这个页面调用Window对象,从而将弹出窗口关闭呢?或者有其他什么好的办法可以解决?请各位不吝赐教!

解决方案 »

  1.   

    这个问题关键是要知道你允许这样的Window弹出来几个,如果你程序只控制弹出来一个,那就很简单,在页面定义一个变量保存当前打开的这个window的cmpid。
    如果你允许可以弹出多个,那么你就需要记录哪个window当前是置顶的(或者说是focus)的,
    不管哪种,都很方便。ps:Window打开多了会出问题的,建议考虑showmodaldialog或者window.open
      

  2.   

    我在A页面弹出一个window加载了页面B,window的ID为win,在B页面可以通过Ext.getCmp("win")这样就可以关闭window吗?请问具体应该如何实现?
      

  3.   

    为什么不把员工列表js和新增的js引入到一个jsp页面?
      

  4.   

     是的 Ext.getCmp('win').close();其实A B 页面的元素可以直接互调的 ,不用传参数