Example #1
0
        public IJsExpression ToJsExpression()
        {
            var component = this;
            var script    = new JsClosure(component.Init);

            return(new HtmlFragment(ComponentRenderingHelper.GetStartTag(this) + ComponentRenderingHelper.GetEndTag(this),
                                    script).ToJsExpression());
        }
Example #2
0
        /**
         * Renders main view for the Form, using the model returned by prepareModel-method.
         * Generates javascript to initialize all rendered components.
         *
         * @param form  Form to be rendered
         * @return      HtmlFragment with rendered HTML and initialization script
         */
        public HtmlFragment RenderMainView(Form form)
        {
            form.FormEngine = this;
            var builder = new StringBuilder();

            builder.Append(ComponentRenderingHelper.GetStartTag(form));
            var model = form.PrepareModel();
            var reg   = new RenderingContext(form);

            reg.Collect(() => builder.Append(_viewRenderer.RenderMainView(form, model)));
            builder.Append(ComponentRenderingHelper.GetEndTag(form));
            var script = new JsClosure(delegate
            {
                form.Init();
                foreach (var comp in reg.Components)
                {
                    comp.Init();
                }
                form.AfterInit();
                UpdateForm(form);
            });

            return(new HtmlFragment(builder.ToString(), script));
        }