⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 refreshmodule.cs

📁 动易SiteFactory&#8482 网上商店系统1.0源代码
💻 CS
字号:
namespace PowerEasy.Web.HttpModule
{
    using PowerEasy.Components;
    using PowerEasy.Web.UI;
    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.UI;

    public class RefreshModule : IHttpModule
    {
        private static Queue<Guid> guids;
        private const string HIDDEN_FIELD_ID = "__REFRESH_FIELD";
        private static int queueSize = 100;

        private static void Application_PreRequestHandlerExecute(object sender, EventArgs e)
        {
            HttpApplication application = sender as HttpApplication;
            if (application != null)
            {
                BasePage currentHandler = application.Context.CurrentHandler as BasePage;
                if ((currentHandler != null) && currentHandler.IsCheckRefreshed)
                {
                    currentHandler.Init += new EventHandler(RefreshModule.Page_Init);
                }
            }
        }

        public void Dispose()
        {
        }

        private static Guid GetPageGuid(Page page)
        {
            string str = page.Request.Form["__REFRESH_FIELD"];
            if (string.IsNullOrEmpty(str))
            {
                return Guid.Empty;
            }
            return new Guid(str);
        }

        public void Init(HttpApplication context)
        {
            guids = new Queue<Guid>(queueSize);
            context.PreRequestHandlerExecute += new EventHandler(RefreshModule.Application_PreRequestHandlerExecute);
        }

        private static void Page_Init(object sender, EventArgs e)
        {
            BasePage page = sender as BasePage;
            if (page != null)
            {
                page.ClientScript.RegisterClientScriptResource(typeof(RefreshModule), "PowerEasy.Web.HttpModule.RefreshModule.js");
                page.ClientScript.RegisterOnSubmitStatement(typeof(RefreshModule), "onsubmit", "refreshModule.createPageIdentifier()");
                page.ClientScript.RegisterHiddenField("__REFRESH_FIELD", "");
                HttpContext.Current.Items["IsRefreshed"] = false;
                if (page.Request.HttpMethod == "POST")
                {
                    Guid pageGuid = GetPageGuid(page);
                    bool flag = guids.Contains(pageGuid);
                    HttpContext.Current.Items["IsRefreshed"] = flag;
                    if (flag)
                    {
                        page.OnRefreshed(e);
                    }
                    if (!flag && (pageGuid != Guid.Empty))
                    {
                        guids.Enqueue(pageGuid);
                        if (guids.Count > SiteConfig.SiteOption.RefreshQueueSize)
                        {
                            guids.Dequeue();
                        }
                    }
                }
            }
        }

        public static Queue<Guid> Guids
        {
            get
            {
                return guids;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -