public StyleQueueItem(IArea site, string styleTag, StyleRelativePosition position, string url, bool forceCombin) { Site = site; StyleTag = styleTag; Position = position; Url = url; ForceCombin = forceCombin; }
/// <summary> /// 输出样式表 /// </summary> /// <param name="writer">The writer.</param> /// <param name="position">The position.</param> protected virtual void RenderStyleSheets(HtmlTextWriter writer, StyleRelativePosition position) { Queue queue = Context.Items[styleKey] as Queue; if (queue != null && queue.Count > 0) { IEnumerator ie = queue.GetEnumerator(); while (ie.MoveNext()) { StyleQueueItem si = (StyleQueueItem)ie.Current; if (si.Position == position) { writer.WriteLine(si.StyleTag); } } } }
/// <summary> /// 添加样式表 /// </summary> /// <param name="url">样式 URL.</param> /// <param name="media"> media 类型.</param> /// <param name="position">The position.</param> public void AddStyle(string url, HtmlLinkMedia media, StyleRelativePosition position) { if (GlobalSettings.IsNullOrEmpty(url)) { return; } HttpContext context = HttpContext.Current; Queue styleQueue = context.Items[styleKey] as Queue; if (styleQueue == null) { styleQueue = new Queue(); context.Items[styleKey] = styleQueue; } styleQueue.Enqueue(new StyleQueueItem(string.Format(styleFormat, GlobalSettings.EnsureHtmlEncoded(url), (media == HtmlLinkMedia.none?"":" media=\"" + media.ToString() + "\"")), position)); }
public static void AddStyle(IArea site, string url, string media, HttpContext context, StyleRelativePosition position, bool enqueue) { Queue styleQueue = context.Items[styleKey] as Queue; if (styleQueue == null) { styleQueue = new Queue(); context.Items[styleKey] = styleQueue; } styleQueue.Enqueue(new StyleQueueItem(site, string.Format(styleFormat, url, media), position, url, enqueue)); }
protected virtual void RenderStyleSheets(HtmlTextWriter writer, StyleRelativePosition position) { Queue queue = Context.Items[styleKey] as Queue; if (queue == null || queue.Count == 0) { return; } Dictionary <IArea, Dictionary <string, List <string> > > di = new Dictionary <IArea, Dictionary <string, List <string> > >(); foreach (StyleQueueItem si in queue) { if (si.Position != position) { continue; } if (!si.Site.CombineCss || !si.ForceCombin) { writer.Write(si.StyleTag); } else if (si.Site.CombineCss) { string url = si.Url; int index = url.LastIndexOf("/"); if (index == -1) { continue; } if (!di.ContainsKey(si.Site)) { di[si.Site] = new Dictionary <string, List <string> >(); } string path = url.Substring(0, index + 1); if (!di[si.Site].ContainsKey(path)) { di[si.Site][path] = new List <string>(); } di[si.Site][path].Add(url); } } foreach (IArea s in di.Keys) { if (!s.CombineCss) { continue; } foreach (string path in di[s].Keys) { string dir = path; int index = path.IndexOf(s.VirtualPath); if (index != -1) { dir = path.Substring(index + s.VirtualPath.Length); writer.Write(string.Format(styleFormat, Utility.FormatCssUrl(s, string.Format("{2}_resc.aspx?f={0}&t=text/css&v={1}", ServerUtil.UrlEncode(StringUtil.CollectionToCommaDelimitedString(di[s][path])), AreaConfig.Instance.CssVersion, dir)), "all")); } else { if (dir == "/") { dir = AreaConfig.Instance.VirtualPath;// res.aspx } writer.Write(string.Format(styleFormat, StringUtil.CombinUrl(s.CssHost, string.Format("{2}_resc.aspx?f={0}&t=text/css&v={1}", ServerUtil.UrlEncode(StringUtil.CollectionToCommaDelimitedString(di[s][path])), AreaConfig.Instance.CssVersion, dir)), "all")); } } } }
public static void AddStyle(IArea site, string url, string media, HttpContext context, StyleRelativePosition position, bool enqueue) { Queue styleQueue = context.Items[styleKey] as Queue; if (styleQueue == null) { styleQueue = new Queue(); context.Items[styleKey] = styleQueue; } styleQueue.Enqueue(new StyleQueueItem(site, string.Format(styleFormat, url, media), position, url, enqueue)); }
protected virtual void RenderStyleSheets(HtmlTextWriter writer, StyleRelativePosition position) { Queue queue = Context.Items[styleKey] as Queue; if (queue == null || queue.Count == 0) return; Dictionary<IArea, Dictionary<string, List<string>>> di = new Dictionary<IArea, Dictionary<string, List<string>>>(); foreach (StyleQueueItem si in queue) { if (si.Position != position) continue; if (!si.Site.CombineCss || !si.ForceCombin) writer.Write(si.StyleTag); else if (si.Site.CombineCss) { string url = si.Url; int index = url.LastIndexOf("/"); if (index == -1) continue; if (!di.ContainsKey(si.Site)) di[si.Site] = new Dictionary<string, List<string>>(); string path = url.Substring(0, index + 1); if (!di[si.Site].ContainsKey(path)) di[si.Site][path] = new List<string>(); di[si.Site][path].Add(url); } } foreach (IArea s in di.Keys) { if (!s.CombineCss) continue; foreach (string path in di[s].Keys) { string dir = path; int index = path.IndexOf(s.VirtualPath); if (index != -1) { dir = path.Substring(index + s.VirtualPath.Length); writer.Write(string.Format(styleFormat, Utility.FormatCssUrl(s, string.Format("{2}_resc.aspx?f={0}&t=text/css&v={1}", ServerUtil.UrlEncode(StringUtil.CollectionToCommaDelimitedString(di[s][path])), AreaConfig.Instance.CssVersion, dir)), "all")); } else { if (dir == "/") dir = AreaConfig.Instance.VirtualPath;// res.aspx writer.Write(string.Format(styleFormat, StringUtil.CombinUrl(s.CssHost, string.Format("{2}_resc.aspx?f={0}&t=text/css&v={1}", ServerUtil.UrlEncode(StringUtil.CollectionToCommaDelimitedString(di[s][path])), AreaConfig.Instance.CssVersion, dir)), "all")); } } } }
public StyleQueueItem(IArea site, string styleTag, StyleRelativePosition position, string url, bool forceCombin) { Site = site; StyleTag = styleTag; Position = position; Url = url; ForceCombin = forceCombin; }
public StyleQueueItem(string styleTag, StyleRelativePosition position) { StyleTag = styleTag; Position = position; }