Iframe中Window(全局遮罩)始终位于最顶层,及关闭后刷新数据(top.Ext.Window使用)
当前页面(Menu.aspx)中创建top.Ext.Window窗口。
JavaScript代码如下:
1 Ext.onReady(function () { 2 var Window1 = new top.Ext.Window({ 3 id: "Window1", 4 autoRender: false, 5 height: 450, 6 loader: { 7 loadMask: { 8 showMask: true, 9 msg: "页面加载中..." 10 }, 11 renderer: "frame" 12 }, 13 width: 650, 14 layout: "fit", 15 collapsible: true, 16 iconCls: "#ApplicationSideTree", 17 defaultRenderTo: "form", 18 maximizable: true, 19 modal: true, 20 directEvents: { 21 hide: { 22 fn: function (item) { 23 Ext.net.directRequest({ 24 url: "Menu.aspx/BindData", 25 cleanRequest: true, 26 eventMask: { 27 showMask: true, 28 msg: "正在处理线程..." 29 }, 30 action: 'Hide' 31 }); 32 } 33 } 34 } 35 }); 36 });
其中:
1 directEvents: { 2 hide: { 3 fn: function (item) { 4 Ext.net.directRequest({ 5 url: "Menu.aspx/BindData", 6 cleanRequest: true, 7 eventMask: { 8 showMask: true, 9 msg: "正在处理线程..." 10 }, 11 action: 'Hide' 12 }); 13 } 14 } 15 }
即实现窗口Hide时调用Menu.aspx页面中的BindData方法。
Menu.aspx页面调用按钮:
1 <ext:Button runat="Server" Icon="Add" Text="新增菜单" ID="BtnNew"> 2 <Listeners> 3 <Click Handler="top.App.Window1.title='新增菜单';top.App.Window1.loader.url='SysMenu/NewMenu.aspx';top.App.Window1.show();"> 4 </Click> 5 </Listeners> 6 </ext:Button>
即设置top.Ext.Window标题及frame URL,然后显示该窗口。
实现的效果为
子页面页面(SysMenu/NewMenu.aspx)关闭按钮:
1 <ext:Button runat="server" Icon="Cancel" Text="关闭" ID="BtnCancel"> 2 <Listeners> 3 <Click Handler="parent.App.Window1.close();"> 4 </Click> 5 </Listeners> 6 </ext:Button>
窗口关闭后,重新绑定Menu.aspx页面数据(自动回发,调用Menu.aspx页面中的BindData方法)。