    public static class PageExtensions
    {  
        private const string styleInclude = "$styleInclude"; 
        /// <summary>
        /// Registers a client style include.      
        /// </summary>
        /// <param name="page">The page.</param>
        /// <param name="type">The type.</param>
        /// <param name="key">The key.</param>
        /// <param name="url">The URL.</param>
        /// <remarks>
        /// The link include will be registered in the header.  
        /// The header must be marked as runat="Server"     
        /// </remarks>
        public static void RegisterClientStyleInclude(this Page page, Type type, string key, string url) 
        {           
            var styleLink = new System.Web.UI.HtmlControls.HtmlLink();    
            styleLink.Href = url;  
            styleLink.Attributes.Add("rel", "stylesheet");   
            styleLink.Attributes.Add("type", "text/css");     
            page.Header.Controls.Add(styleLink);          
            page.Items[styleInclude + type.ToString() + key] = true;
        }     
        
        /// <summary>
        /// Determines whether the client style include is registered. 
        /// /// </summary>
        /// <param name="type">The type.</param>
        /// <param name="page">The page.</param>
        /// <param name="key">The key.</param>
        /// <returns>
        /// <c>true</c> if the client style include is registered; otherwise, <c>false</c>. 
        /// </returns>
        public static bool IsClientStyleIncludeRegistered(this Page page, Type type, string key)   
        {         
            return page.Items.Contains(styleInclude + type.ToString() + key);  
        } 
    }