コード例 #1
0
        private void CheckID()
        {
            IDMode mode = control.IDMode;

            if (((mode == Ext.Net.IDMode.Explicit || mode == Ext.Net.IDMode.Static) && !control.IsIdRequired) || mode == Ext.Net.IDMode.Ignore)
            {
                throw new Exception("You have to set widget's ID to call its methods (widget - " + control.GetType().ToString() + ")");
            }
        }
コード例 #2
0
        public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id)
        {
            if (String.IsNullOrEmpty(partialViewName))
            {
                throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
            }

            return new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id);
        }
コード例 #3
0
        public static IDMode GetIDModeFromWebConfig(ISite site)
        {
            IDMode       idMode  = IDMode.Legacy;
            GlobalConfig coolite = GetCooliteSection(site);

            if (coolite != null)
            {
                idMode = coolite.IDMode;
            }
            return(idMode);
        }
コード例 #4
0
        public static IDMode GetIDModeFromWebConfig(ISite site)
        {
            IDMode idMode = IDMode.Explicit;

            GlobalConfig extnet = GetExtNetSection(site);

            if (extnet != null)
            {
                idMode = extnet.IDMode;
            }

            return(idMode);
        }
コード例 #5
0
        public static PartialViewResult PartialExtView(this System.Web.Mvc.Controller controller,
                                                       string viewName             = null,
                                                       ViewDataDictionary viewData = null,
                                                       object model = null,
                                                       TempDataDictionary tempData = null,
                                                       IDMode idMode                    = IDMode.Static,
                                                       string controlId                 = null,
                                                       string containerId               = null,
                                                       int index                        = 0,
                                                       string ns                        = null,
                                                       RenderMode mode                  = RenderMode.RenderTo,
                                                       bool wrapByScriptTag             = true,
                                                       bool singleControl               = false,
                                                       bool items                       = false,
                                                       string controlToRender           = null,
                                                       bool clearContainer              = false,
                                                       Container.Config containerConfig = null)
        {
            PartialViewResult result = new PartialViewResult();

            if (model != null)
            {
                controller.ViewData.Model = model;
            }

            result.ViewName = viewName;
            result.ViewData = viewData ?? controller.ViewData;
            result.TempData = tempData ?? controller.TempData;

            result.IDMode          = idMode;
            result.ControlId       = controlId;
            result.ContainerId     = containerId;
            result.Index           = index;
            result.Namespace       = ns;
            result.RenderMode      = mode;
            result.WrapByScriptTag = wrapByScriptTag;
            result.SingleControl   = singleControl;
            result.Items           = items;
            result.ControlToRender = controlToRender;
            result.ContainerConfig = containerConfig;
            result.ClearContainer  = clearContainer;

            return(result);
        }
コード例 #6
0
        protected virtual void CallTemplate(ScriptPosition position, string template, string name, params object[] args)
        {
            IDMode mode = this.IDMode;

            if (((mode == Ext.Net.IDMode.Explicit || mode == Ext.Net.IDMode.Static) && !this.IsIdRequired) || mode == Ext.Net.IDMode.Ignore)
            {
                throw new Exception("You have to set widget's ID to call its methods");
            }

            StringBuilder sb = new StringBuilder();

            if (args != null && args.Length > 0)
            {
                foreach (object arg in args)
                {
                    if (arg is string)
                    {
                        sb.AppendFormat("{0},", TokenUtils.ParseAndNormalize(arg.ToString(), this.SafeResourceManager));
                    }
                    else
                    {
                        sb.AppendFormat("{0},", JSON.Serialize(arg, JSON.ScriptConvertersInternal));
                    }
                }
            }

            string script = template.FormatWith(this.CallID, name, sb.ToString().LeftOfRightmostOf(','));

            switch (position)
            {
            case ScriptPosition.BeforeInit:
                this.ResourceManager.RegisterBeforeClientInitScript(script);
                break;

            case ScriptPosition.AfterInit:
                this.ResourceManager.RegisterAfterClientInitScript(script);
                break;

            default:
                this.AddScript(script);
                break;
            }
        }
コード例 #7
0
        public virtual string Render(ControllerContext context, string viewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string controlId)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (String.IsNullOrEmpty(viewName))
            {
                viewName = context.RouteData.GetRequiredString("action");
            }

            //string path = PartialViewResult.FindView(context, viewName);
            string id = controlId ?? "ID_" + Guid.NewGuid().ToString().Replace("-", "");
            string ct = "ID_" + Guid.NewGuid().ToString().Replace("-", "");

            ViewDataDictionary newViewData = null;

            if (model == null)
            {
                if (viewData == null)
                {
                    newViewData = new ViewDataDictionary();
                }
                else
                {
                    newViewData = new ViewDataDictionary(viewData);
                }
            }
            else
            {
                if (viewData == null)
                {
                    newViewData = new ViewDataDictionary(model);
                }
                else
                {
                    newViewData = new ViewDataDictionary(viewData) { Model = model };
                }
            }

            ViewEngineResult result = ViewEngines.Engines.FindPartialView(context, viewName);
            IView view = result.View;
            string path = ((WebFormView)view).ViewPath;

            ViewContext viewContext = new ViewContext(context, view, newViewData, tempData ?? new TempDataDictionary(), context.HttpContext.Response.Output);

            PartialViewPage pageHolder = new PartialViewPage
            {
                ViewData = newViewData,
                ViewContext = viewContext
            };
			
			var curRM = HttpContext.Current.Items[typeof(ResourceManager)];
			HttpContext.Current.Items[typeof(ResourceManager)] = null;
			object oldPageRM = null;

            if (context.HttpContext.CurrentHandler is Page)
            {
                oldPageRM = ((Page)HttpContext.Current.CurrentHandler).Items[typeof(ResourceManager)];
                ((Page) HttpContext.Current.CurrentHandler).Items[typeof (ResourceManager)] = null;
            }

            ResourceManager rm = new ResourceManager();
            rm.RenderScripts = ResourceLocationType.None;
            rm.RenderStyles = ResourceLocationType.None;
            rm.IDMode = idMode;
            pageHolder.Controls.Add(rm);
            Panel p = new Panel { ID = id, IDMode = idMode, Border = false, Header = false };
            pageHolder.Controls.Add(p);

            ViewUserControl uc = (ViewUserControl)pageHolder.LoadControl(path);
            uc.ID = id + "_UC";
            uc.ViewData = newViewData;
            p.ContentControls.Add(uc);

            pageHolder.InitHelpers();

            string wScript = DefaultScriptBuilder.Create(p).Build(RenderMode.RenderTo, ct, null, true, true);            
            string script = string.Format("<div id=\"{0}\"></div><script type=\"text/javascript\">Ext.onReady(function(){{{1}}});</script>", ct, wScript);

            IDisposable disposable = view as IDisposable;
            if (disposable != null)
            {
                disposable.Dispose();
            }
			
			HttpContext.Current.Items[typeof(ResourceManager)] = curRM;
			if (context.HttpContext.CurrentHandler is Page)
            {
                ((Page)HttpContext.Current.CurrentHandler).Items[typeof(ResourceManager)] = oldPageRM;
            }

            return script;
        }
コード例 #8
0
 public virtual TBuilder IDMode(IDMode idMode)
 {
     this.ToComponent().IDMode = idMode;
     return(this as TBuilder);
 }
コード例 #9
0
 public virtual string Render(ControllerContext context, string viewName, ViewDataDictionary viewData, object model, IDMode idMode, string controlId)
 {
     return this.Render(context, viewName, viewData, model, new TempDataDictionary(), idMode, controlId);
 }
コード例 #10
0
 public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, IDMode idMode, string id)
 {
     return(htmlHelper.RenderExtPartial(partialViewName, viewData, model, null, IDMode.Explicit, id));
 }
コード例 #11
0
        public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id)
        {
            if (String.IsNullOrEmpty(partialViewName))
            {
                throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
            }

            return(new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id));
        }
コード例 #12
0
 public virtual string Render(ControllerContext context, string viewName, ViewDataDictionary viewData, object model, IDMode idMode, string controlId)
 {
     return(this.Render(context, viewName, viewData, model, new TempDataDictionary(), idMode, controlId));
 }
コード例 #13
0
        ///// <summary>
        ///// 
        ///// </summary>
        ///// <param name="htmlHelper"></param>
        ///// <param name="partialViewName"></param>
        ///// <param name="viewData"></param>
        ///// <param name="model"></param>
        ///// <param name="tempData"></param>
        ///// <param name="idMode"></param>
        ///// <param name="id"></param>
        ///// <returns></returns>
        //public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id)
        //{
        //    if (String.IsNullOrEmpty(partialViewName))
        //    {
        //        throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
        //    }

        //    return new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id);
        //}
        
        /// <summary>
        /// Renders the partial view with the parent's view data
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="partialViewName"></param>
        /// <param name="viewData"></param>
        /// <param name="model"></param>
        /// <param name="tempData"></param>
        /// <param name="idMode"></param>
        /// <param name="controlId"></param>
        /// <param name="containerId"></param>
        /// <param name="index"></param>
        /// <param name="ns"></param>
        /// <param name="mode"></param>
        /// <param name="wrapByScriptTag"></param>
        /// <param name="singleControl"></param>
        /// <param name="items"></param>
        /// <param name="controlToRender"></param>
        /// <param name="containerConfig"></param>
        /// <returns></returns>
        public static IHtmlString ExtPartial(this HtmlHelper htmlHelper, 
            string partialViewName, 
            ViewDataDictionary viewData = null, 
            object model = null, 
            TempDataDictionary tempData = null, 
            IDMode idMode = IDMode.Static, 
            string controlId = null, 
            string containerId = null, 
            int index = 0, 
            string ns = null, 
            RenderMode mode = RenderMode.RenderTo, 
            bool wrapByScriptTag = true,
            bool singleControl = false,
            bool items = false,
            string controlToRender = null,
            Container.Config containerConfig = null)
        {
            if (String.IsNullOrEmpty(partialViewName))
            {
                throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
            }

            string divId = null;
            if (containerId.IsEmpty() && mode == RenderMode.RenderTo)
            {
                containerId = BaseControl.GenerateID();
                divId = containerId;
            }

            PartialViewResult result = new PartialViewResult();
            result.WriteToString = true;

            result.ViewName = partialViewName;

            result.ViewData = viewData ?? htmlHelper.ViewData;

            if (model != null)
            {
                result.ViewData.Model = model;
            }

            if (tempData != null)
            {
                result.TempData = tempData;
            }

            result.IDMode = idMode;
            result.ControlId = controlId;
            result.ContainerId = containerId;
            result.Index = index;
            result.Namespace = ns;
            result.RenderMode = mode;
            result.WrapByScriptTag = wrapByScriptTag;
            result.SingleControl = singleControl;
            result.Items = items;
            result.ControlToRender = controlToRender;
            result.ContainerConfig = containerConfig;

            result.ExecuteResult(htmlHelper.ViewContext);

            if (divId != null)
            {
                return new HtmlString(string.Format("<div id=\"{0}\"></div>{1}", divId, result.Output));
            }

            return new HtmlString(result.Output);
        }
コード例 #14
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="htmlHelper"></param>
 /// <param name="partialViewName"></param>
 /// <param name="viewData"></param>
 /// <param name="model"></param>
 /// <param name="idMode"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, IDMode idMode, string id)
 {
     return htmlHelper.RenderExtPartial(partialViewName, viewData, model, null, IDMode.Explicit, id);
 }
コード例 #15
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="htmlHelper"></param>
 /// <param name="partialViewName"></param>
 /// <param name="viewData"></param>
 /// <param name="idMode"></param>
 /// <returns></returns>
 public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, IDMode idMode)
 {
     return htmlHelper.RenderExtPartial(partialViewName, viewData, null, idMode, null);
 }
コード例 #16
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="idMode"></param>
 /// <returns></returns>
 public MvcResourceManagerBuilder IDMode(IDMode idMode)
 {
     this.config.IDMode = idMode;
     this.mgr.IDMode = idMode;
     return this;
 }
コード例 #17
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="htmlHelper"></param>
        ///// <param name="partialViewName"></param>
        ///// <param name="viewData"></param>
        ///// <param name="model"></param>
        ///// <param name="tempData"></param>
        ///// <param name="idMode"></param>
        ///// <param name="id"></param>
        ///// <returns></returns>
        //public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id)
        //{
        //    if (String.IsNullOrEmpty(partialViewName))
        //    {
        //        throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
        //    }

        //    return new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id);
        //}

        /// <summary>
        /// Renders the partial view with the parent's view data
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="partialViewName"></param>
        /// <param name="viewData"></param>
        /// <param name="model"></param>
        /// <param name="tempData"></param>
        /// <param name="idMode"></param>
        /// <param name="controlId"></param>
        /// <param name="containerId"></param>
        /// <param name="index"></param>
        /// <param name="ns"></param>
        /// <param name="mode"></param>
        /// <param name="wrapByScriptTag"></param>
        /// <param name="singleControl"></param>
        /// <param name="items"></param>
        /// <param name="controlToRender"></param>
        /// <param name="containerConfig"></param>
        /// <returns></returns>
        public static IHtmlString ExtPartial(this HtmlHelper htmlHelper,
                                             string partialViewName,
                                             ViewDataDictionary viewData = null,
                                             object model = null,
                                             TempDataDictionary tempData = null,
                                             IDMode idMode                    = IDMode.Static,
                                             string controlId                 = null,
                                             string containerId               = null,
                                             int index                        = 0,
                                             string ns                        = null,
                                             RenderMode mode                  = RenderMode.RenderTo,
                                             bool wrapByScriptTag             = true,
                                             bool singleControl               = false,
                                             bool items                       = false,
                                             string controlToRender           = null,
                                             Container.Config containerConfig = null)
        {
            if (String.IsNullOrEmpty(partialViewName))
            {
                throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
            }

            string divId = null;

            if (containerId.IsEmpty() && mode == RenderMode.RenderTo)
            {
                containerId = BaseControl.GenerateID();
                divId       = containerId;
            }

            PartialViewResult result = new PartialViewResult();

            result.WriteToString = true;

            result.ViewName = partialViewName;

            result.ViewData = viewData ?? htmlHelper.ViewData;

            if (model != null)
            {
                result.ViewData.Model = model;
            }

            if (tempData != null)
            {
                result.TempData = tempData;
            }

            result.IDMode          = idMode;
            result.ControlId       = controlId;
            result.ContainerId     = containerId;
            result.Index           = index;
            result.Namespace       = ns;
            result.RenderMode      = mode;
            result.WrapByScriptTag = wrapByScriptTag;
            result.SingleControl   = singleControl;
            result.Items           = items;
            result.ControlToRender = controlToRender;
            result.ContainerConfig = containerConfig;

            result.ExecuteResult(htmlHelper.ViewContext);

            if (divId != null)
            {
                return(new HtmlString(string.Format("<div id=\"{0}\"></div>{1}", divId, result.Output)));
            }

            return(new HtmlString(result.Output));
        }
コード例 #18
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="idMode"></param>
 /// <returns></returns>
 public MvcResourceManagerBuilder IDMode(IDMode idMode)
 {
     this.config.IDMode = idMode;
     this.mgr.IDMode    = idMode;
     return(this);
 }
コード例 #19
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="htmlHelper"></param>
 /// <param name="partialViewName"></param>
 /// <param name="model"></param>
 /// <param name="idMode"></param>
 /// <returns></returns>
 public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, object model, IDMode idMode)
 {
     return htmlHelper.RenderExtPartial(partialViewName, htmlHelper.ViewData, model, idMode, null);
 }
コード例 #20
0
 public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, IDMode idMode, string id)
 {
     return(htmlHelper.RenderExtPartial(partialViewName, htmlHelper.ViewData, null, idMode, id));
 }
コード例 #21
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="htmlHelper"></param>
 /// <param name="partialViewName"></param>
 /// <param name="idMode"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, IDMode idMode, string id)
 {
     return htmlHelper.RenderExtPartial(partialViewName, htmlHelper.ViewData, null, idMode, id);
 }
コード例 #22
0
 public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, IDMode idMode)
 {
     return(htmlHelper.RenderExtPartial(partialViewName, viewData, null, idMode, null));
 }
コード例 #23
0
        public virtual string Render(ControllerContext context, string viewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string controlId)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (String.IsNullOrEmpty(viewName))
            {
                viewName = context.RouteData.GetRequiredString("action");
            }

            //string path = PartialViewResult.FindView(context, viewName);
            string id = controlId ?? "ID_" + Guid.NewGuid().ToString().Replace("-", "");
            string ct = "ID_" + Guid.NewGuid().ToString().Replace("-", "");

            ViewDataDictionary newViewData = null;

            if (model == null)
            {
                if (viewData == null)
                {
                    newViewData = new ViewDataDictionary();
                }
                else
                {
                    newViewData = new ViewDataDictionary(viewData);
                }
            }
            else
            {
                if (viewData == null)
                {
                    newViewData = new ViewDataDictionary(model);
                }
                else
                {
                    newViewData = new ViewDataDictionary(viewData)
                    {
                        Model = model
                    };
                }
            }

            ViewEngineResult result = ViewEngines.Engines.FindPartialView(context, viewName);
            IView            view   = result.View;
            string           path   = ((WebFormView)view).ViewPath;

            ViewContext viewContext = new ViewContext(context, view, newViewData, tempData ?? new TempDataDictionary(), context.HttpContext.Response.Output);

            PartialViewPage pageHolder = new PartialViewPage
            {
                ViewData    = newViewData,
                ViewContext = viewContext
            };

            var curRM = HttpContext.Current.Items[typeof(ResourceManager)];

            HttpContext.Current.Items[typeof(ResourceManager)] = null;
            object oldPageRM = null;

            if (context.HttpContext.CurrentHandler is Page)
            {
                oldPageRM = ((Page)HttpContext.Current.CurrentHandler).Items[typeof(ResourceManager)];
                ((Page)HttpContext.Current.CurrentHandler).Items[typeof(ResourceManager)] = null;
            }

            ResourceManager rm = new ResourceManager();

            rm.RenderScripts = ResourceLocationType.None;
            rm.RenderStyles  = ResourceLocationType.None;
            rm.IDMode        = idMode;
            pageHolder.Controls.Add(rm);
            Panel p = new Panel {
                ID = id, IDMode = idMode, Border = false, Header = false
            };

            pageHolder.Controls.Add(p);

            ViewUserControl uc = (ViewUserControl)pageHolder.LoadControl(path);

            uc.ID       = id + "_UC";
            uc.ViewData = newViewData;
            p.ContentControls.Add(uc);

            pageHolder.InitHelpers();

            string wScript = DefaultScriptBuilder.Create(p).Build(RenderMode.RenderTo, ct, null, true, true);
            string script  = string.Format("<div id=\"{0}\"></div><script type=\"text/javascript\">Ext.onReady(function(){{{1}}});</script>", ct, wScript);

            IDisposable disposable = view as IDisposable;

            if (disposable != null)
            {
                disposable.Dispose();
            }

            HttpContext.Current.Items[typeof(ResourceManager)] = curRM;
            if (context.HttpContext.CurrentHandler is Page)
            {
                ((Page)HttpContext.Current.CurrentHandler).Items[typeof(ResourceManager)] = oldPageRM;
            }

            return(script);
        }
コード例 #24
0
 public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, object model, IDMode idMode)
 {
     return(htmlHelper.RenderExtPartial(partialViewName, htmlHelper.ViewData, model, idMode, null));
 }