Ejemplo n.º 1
0
        /// <summary>
        /// Returns a standard Resx resource based on it's . delimited resourceset name
        /// </summary>
        /// <param name="varName">The name of the JavaScript variable to create</param>
        /// <param name="resourceSet">The name of the resource set
        ///
        /// Example:
        /// CodePasteMvc.Resources.Resources  (~/Resources/Resources.resx in CodePasteMvc project)
        /// </param>
        /// <param name="localeId">IETF locale id (2 or 4 en or en-US or empty)</param>
        /// <param name="resourceType">ResDb or ResX</param>
        /// <returns></returns>
        public static string GetJavaScriptResourcesUrl(string varName, string resourceSet,
                                                       string localeId = null,
                                                       ResourceProviderTypes resourceType = ResourceProviderTypes.AutoDetect)
        {
            if (localeId == null)
            {
                localeId = CultureInfo.CurrentUICulture.IetfLanguageTag;
            }

            if (resourceType == ResourceProviderTypes.AutoDetect)
            {
                if (DbSimpleResourceProvider.ProviderLoaded || DbResourceProvider.ProviderLoaded)
                {
                    resourceType = ResourceProviderTypes.DbResourceProvider;
                }
            }

            StringBuilder sb = new StringBuilder(512);

            sb.Append(WebUtils.ResolveUrl("~/") + "JavaScriptResourceHandler.axd?");
            sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}",
                            resourceSet, localeId, varName,
                            resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx");
            sb.Append("&ResourceMode=1");

            return(sb.ToString());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Inserts local resources into the current page.
        /// </summary>
        /// <param name="control">A control (typically) page needed to embed into the page</param>
        /// <param name="resourceSet">Name of the resourceSet to load</param>
        /// <param name="localeId">The Locale for which to load resources. Normalized from most specific to Invariant</param>
        /// <param name="varName">Name of the variable generated</param>
        /// <param name="resourceType">Resx or DbResourceProvider (database)</param>
        /// <param name="includeControls">Determines whether control ids are included</param>
        public static void RegisterJavaScriptLocalResources(Control control, string varName, string localeId, string resourceSet,
                                                            ResourceProviderTypes resourceType, bool includeControls)
        {
            string url = GetJavaScriptLocalResourcesUrl(varName, localeId, resourceSet, resourceType, includeControls);

            ClientScriptProxy.Current.RegisterClientScriptInclude(control, typeof(JavaScriptResourceHandler),
                                                                  url, ScriptRenderModes.Header);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Embed global JavaScript resources into the page.
        ///
        /// This version returns resources of the active Resx or DB Resource Provider,
        /// includes no controls and uses the CurrentUICulture's locale id
        /// </summary>
        /// <param name="control">A control or page instance required to </param>
        /// <param name="varName">Name of the JavaScript object variable created</param>
        public static void RegisterJavaScriptLocalResources(Control control, string varName)
        {
            ResourceProviderTypes type = ResourceProviderTypes.AutoDetect;

            // translate current page path into resource path
            string resourceSet = WebUtils.GetAppRelativePath();

            RegisterJavaScriptLocalResources(control, varName,
                                             CultureInfo.CurrentUICulture.IetfLanguageTag, resourceSet, type, false);
        }
        /// <summary>
        ///     Returns a URL to the JavaScriptResourceHandler.axd handler that retrieves
        ///     normalized resources for a given resource set and localeId and creates
        ///     a JavaScript object with the name specified.
        ///     This function returns only the URL - you're responsible for embedding
        ///     the URL into the page as a script tag to actually load the resources.
        /// </summary>
        /// <param name="varName"></param>
        /// <param name="resourceSet"></param>
        /// <param name="localeId"></param>
        /// <param name="resourceType"></param>
        /// <returns></returns>
        public static string GetJavaScriptGlobalResourcesUrl(string varName, string resourceSet, string localeId = null,
                                                             ResourceProviderTypes resourceType = ResourceProviderTypes.AutoDetect)
        {
            if (resourceType == ResourceProviderTypes.AutoDetect)
            {
                resourceType = ResourceProviderTypes.DbResourceProvider;
            }


            var sb = new StringBuilder(512);

            sb.Append("/JavaScriptResourceHandler.axd?");
            sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}",
                            resourceSet, localeId, varName,
                            resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx");
            sb.Append("&ResourceMode=1");

            return(sb.ToString());
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Inserts local resources into the current page.
        /// </summary>
        /// <param name="control">A control (typically) page needed to embed into the page</param>
        /// <param name="resourceSet">Name of the resourceSet to load</param>
        /// <param name="localeId">The Locale for which to load resources. Normalized from most specific to Invariant</param>
        /// <param name="varName">Name of the variable generated</param>
        /// <param name="resourceType">Resx or DbResourceProvider (database)</param>
        /// <param name="includeControls">Determines whether control ids are included</param>
        public static string GetJavaScriptLocalResourcesUrl(string varName, string localeId, string resourceSet,
                                                            ResourceProviderTypes resourceType, bool includeControls)
        {
            if (resourceType == ResourceProviderTypes.AutoDetect)
            {
                if (DbSimpleResourceProvider.ProviderLoaded || DbResourceProvider.ProviderLoaded)
                {
                    resourceType = ResourceProviderTypes.DbResourceProvider;
                }
            }

            StringBuilder sb = new StringBuilder(512);

            sb.Append(WebUtils.ResolveUrl("~/") + "JavaScriptResourceHandler.axd?");
            sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}&ResourceMode=0",
                            resourceSet, localeId, varName,
                            (resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx"));
            if (includeControls)
            {
                sb.Append("&IncludeControls=1");
            }

            return(sb.ToString());
        }
        /// <summary>
        /// Returns a standard Resx resource based on it's . delimited resourceset name
        /// </summary>
        /// <param name="varName">The name of the JavaScript variable to create</param>
        /// <param name="resourceSet">The name of the resource set
        /// 
        /// Example:
        /// CodePasteMvc.Resources.Resources  (~/Resources/Resources.resx in CodePasteMvc project)
        /// </param>
        /// <param name="localeId">IETF locale id (2 or 4 en or en-US or empty)</param>
        /// <param name="resourceType">ResDb or ResX</param>
        /// <returns></returns>
        public static string GetJavaScriptResourcesUrl(string varName, string resourceSet,
                                                      string localeId = null,
                                                      ResourceProviderTypes resourceType = ResourceProviderTypes.AutoDetect)
        {
            if (localeId == null)
                localeId = CultureInfo.CurrentUICulture.IetfLanguageTag;
            
            if (resourceType == ResourceProviderTypes.AutoDetect)
            {
                if (DbSimpleResourceProvider.ProviderLoaded || DbResourceProvider.ProviderLoaded)
                    resourceType = ResourceProviderTypes.DbResourceProvider;
            }

            StringBuilder sb = new StringBuilder(512);
            sb.Append(WebUtils.ResolveUrl("~/") + "JavaScriptResourceHandler.axd?");
            sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}",
                             resourceSet, localeId, varName,
                             resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx");
            sb.Append("&ResourceMode=1");

            return sb.ToString();
        }
        /// <summary>
        /// Inserts local resources into the current page.
        /// </summary>
        /// <param name="control">A control (typically) page needed to embed into the page</param>
        /// <param name="resourceSet">Name of the resourceSet to load</param>
        /// <param name="localeId">The Locale for which to load resources. Normalized from most specific to Invariant</param>
        /// <param name="varName">Name of the variable generated</param>
        /// <param name="resourceType">Resx or DbResourceProvider (database)</param>
        /// <param name="includeControls">Determines whether control ids are included</param>
        public static string GetJavaScriptLocalResourcesUrl(string varName, string localeId, string resourceSet,
                                                            ResourceProviderTypes resourceType, bool includeControls)
        {
            if (resourceType == ResourceProviderTypes.AutoDetect)
            {
                if (DbSimpleResourceProvider.ProviderLoaded || DbResourceProvider.ProviderLoaded)
                    resourceType = ResourceProviderTypes.DbResourceProvider;
            }

            StringBuilder sb = new StringBuilder(512);

            sb.Append(WebUtils.ResolveUrl("~/") + "JavaScriptResourceHandler.axd?");
            sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}&ResourceMode=0",
                resourceSet, localeId, varName, 
                (resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx") );
            if (includeControls)
                sb.Append("&IncludeControls=1");            

            return sb.ToString();
        }
        /// <summary>
        /// Inserts local resources into the current page.
        /// </summary>
        /// <param name="control">A control (typically) page needed to embed into the page</param>
        /// <param name="resourceSet">Name of the resourceSet to load</param>
        /// <param name="localeId">The Locale for which to load resources. Normalized from most specific to Invariant</param>
        /// <param name="varName">Name of the variable generated</param>
        /// <param name="resourceType">Resx or DbResourceProvider (database)</param>
        /// <param name="includeControls">Determines whether control ids are included</param>
        public static void RegisterJavaScriptLocalResources(Control control, string varName, string localeId, string resourceSet,
                                                            ResourceProviderTypes resourceType, bool includeControls)
        {
            string url = GetJavaScriptLocalResourcesUrl(varName, localeId, resourceSet, resourceType, includeControls);

            ClientScriptProxy.Current.RegisterClientScriptInclude(control, typeof(JavaScriptResourceHandler),
                                                                   url, ScriptRenderModes.Header);
        }