void m_browser_Navigating(object sender, LoadedMoudleEventArgs e) { var container = sender as IContainer; PageTab tab = PageBrowser.GetPageTabByChild(sender as FrameworkElement); if (tab != null) { LoadingComponent component = tab.GetValue(LoadingSettingProperty) as LoadingComponent; if (container != null) { container.LoadProgress -= new EventHandler <LoadProgressEventArgs>(container_LoadProgress); container.LoadProgress += new EventHandler <LoadProgressEventArgs>(container_LoadProgress); } if (e.Status == LoadModuleStatus.Begin) { if (component == null) { component = this.GetInstance(tab) as LoadingComponent; component.Show(); } } else { if (component != null) { component.Hide(); } } } }
void m_browser_Navigating(object sender, LoadedMoudleEventArgs e) { if (e.Status == LoadModuleStatus.End) { IModuleInfo module = e.Request.ModuleInfo; IViewInfo view = module.GetViewInfoByName(e.Request.ViewName); if (view != null && view.NeedAccess && !this.HasFunctionForPage(string.Format("/{0}/{1}", e.Request.ModuleName, e.Request.ViewName))) { throw new PageException(MessageResource.PageException_DeniedAccess_Title, MessageResource.PageException_DeniedAccess_Message, e.Request); } } }
void container_LoadModule(object sender, LoadedMoudleEventArgs e) { if (e.Status == Core.Components.LoadModuleStatus.End) { var container = sender as GridContainer; Request request = e.Request; IViewInfo viewInfo = request.ModuleInfo.GetViewInfoByName(request.ViewName); if (viewInfo != null) { object view = viewInfo.GetViewInstance(new PageContext(request, m_browser)); IPage page = view as IPage; (sender as IContainer).Children.Add(view as UIElement); var pageBase = view as PageBase; if (pageBase != null) { pageBase.Window.DialogClosed += new EventHandler <ResultEventArgs>(Window_DialogClosed); this.Closed += (obj, args) => { pageBase.Window.DialogClosed -= new EventHandler <ResultEventArgs>(Window_DialogClosed); }; this.Closing += (obj, args) => { var args2 = new ClosingEventArgs { Cancel = false }; pageBase.Window.ClosingDialog(args2); args.Cancel = args2.Cancel; }; } if (page != null && pageBase != null) { Deployment.Current.Dispatcher.BeginInvoke(() => { page.Context.OnPageLoad(page, new EventArgs()); }); } CPApplication.Current.CurrentPage.Context.Window.LoadingSpin.Hide(); this.Show(); } else { CPApplication.Current.CurrentPage.Context.Window.LoadingSpin.Hide(); CPApplication.Current.CurrentPage.Context.Window.MessageBox.Show(MessageResource.PopupBox_CannotFoundPage, MessageBoxType.Error); } } }
protected virtual void OnLoadModule(object sender, LoadedMoudleEventArgs e) { if (e.Status == LoadModuleStatus.End) { lock (m_mutex) { m_currentRequest = null; } if (e.Error == null && e.Request.ModuleInfo != null) { this.Children.Clear(); } //注销单实例引用,避免内存泄露 this.ModuleManager.LoadProgress -= new EventHandler <LoadProgressEventArgs>(ModuleManager_LoadProgress); } if (this.LoadModule != null) { this.LoadModule(this, e); } }