예제 #1
0
        protected override void Render()
        {
            // Capture placeholder content
            var placeholderContent = HxlPlaceholderContentProvider.FromElement(Element);

            HxlMasterInfo masterInfo = new HxlMasterInfo(placeholderContent, null, this.Element, _layoutName);
            var           output     = this.Output;

            HxlTemplateContext context = this.TemplateContext;
            var master = LoadMaster(context.TemplateFactory, _ignoreErrors, _layoutName);

            var childContext = context.CreateChildContext(master);

            childContext.SetMasterInfo(masterInfo);

            master.Transform(output, childContext);
        }
예제 #2
0
        protected override void Render()
        {
            // Only render the content placeholders
            var placeholderContent = HxlPlaceholderContentProvider.FromElement(Element);

            var masterInfo = new HxlMasterInfo(placeholderContent, null, Element, _layout);

            masterInfo.InSpa = true;

            var master = LayoutTemplate.LoadMaster(TemplateContext.TemplateFactory, false, _layout);
            var tc     = TemplateContext.CreateChildContext(master);

            tc.SetMasterInfo(masterInfo);

            master.Transform(TextWriter.Null, tc);

            // TODO Could have multiple items scheduled
            // TODO Skip over single-page elements that were disabled
            // TODO Output correct spa locations

            // If Output is null writer, then we're nested
            if (ReferenceEquals(Output, TextWriter.Null))
            {
                return;
            }

            Output.WriteLine("{ ");
            object versionString = "1";

            Output.WriteLine(string.Format("\"version\": \"{0}\", ", versionString));
            Output.WriteLine("\"fragments\": [");

            bool comma = false;

            foreach (StringWriter b in TemplateContext.EndBufferContent("spaFragments"))
            {
                if (comma)
                {
                    Output.Write(",");
                }

                Output.WriteLine(b);
                comma = true;
            }
            Output.WriteLine("] }");
        }
예제 #3
0
 internal void SetMasterInfo(HxlMasterInfo masterInfo)
 {
     this._masterInfo = masterInfo;
 }