www.pudn.com > Tustena_CRM_OS_3.0.2_Stable.zip > PageUtils.cs
///TUSTENA PUBLIC LICENSE v1.0 ////// Portions Copyright (c) 2003-2005 Digita S.r.l. All Rights Reserved. /// /// Tustena CRM is a trademark of: /// Digita S.r.l. /// Viale Enrico Fermi 14/z /// 31011 Asolo (Italy) /// Tel. +39-0423-951251 /// Mail. info@digita.it /// /// This file contains Original Code and/or Modifications of Original Code /// as defined in and that are subject to the Tustena Public Source License /// Version 1.0 (the 'License'). You may not use this file except in /// compliance with the License. Please obtain a copy of the License at /// http://www.tustena.com/TPL/ and read it before using this // file. /// /// The Original Code and all software distributed under the License are /// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER /// EXPRESS OR IMPLIED, AND DIGITA S.R.L. HEREBY DISCLAIMS ALL SUCH WARRANTIES, /// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. /// Please see the License for the specific language governing rights and /// limitations under the License. /// /// YOU MAY NOT REMOVE OR ALTER THIS COPYRIGHT NOTICE! /// using System; using System.IO; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; namespace Digita.Tustena.RenderUtils { public class PageUtil { public static void SetInitialFocus(Control control) { if (control.Page == null) { throw new ArgumentException("The Control must be added to a Page before you can set the IntialFocus to it."); } if (control.Page.Request.Browser.JavaScript == true) { StringBuilder s = new StringBuilder(); s.Append("\n"); control.Page.RegisterClientScriptBlock("InitialFocus", s.ToString()); } } public bool GetStatusNotModified() { string sPath = HttpContext.Current.Request.ServerVariables["Path_Translated"]; return GetStatusNotModified(File.GetLastWriteTime(sPath)); } public bool GetStatusNotModified(DateTime latest) { bool notModified = false; string etag = HttpContext.Current.Request.Headers["If-None-Match"]; if (etag != null) { notModified = (etag.Equals(latest.Ticks.ToString())); } else { string ifModifiedSince = HttpContext.Current.Request.Headers["if-modified-since"]; if (ifModifiedSince != null) { try { if (ifModifiedSince.IndexOf(";") > -1) { ifModifiedSince = ifModifiedSince.Split(';').GetValue(0).ToString(); } DateTime ifModDate = DateTime.Parse(ifModifiedSince); notModified = (latest <= ifModDate); } catch { } } } if (notModified) { HttpContext.Current.Response.StatusCode = 304; HttpContext.Current.Response.SuppressContent = true; return true; } HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public); HttpContext.Current.Response.Cache.SetLastModified(latest); HttpContext.Current.Response.Cache.SetETag(latest.Ticks.ToString() + ":03"); return false; } } }