public void TestExpressionOneArg() { var v1 = new JsVariable("var1"); var cl = new JsClosure(new JsCall("init"), v1); Assert.AreEqual("function(var1){init()}", cl.Encode()); }
public void TestRunnable() { var v1 = new JsVariable("var1"); var v2 = new JsVariable("var2"); var cl = new JsClosure(() => JsContext.Add(new JsCall("alert", v1, v2)), v2, v1); Assert.AreEqual("function(var2, var1){alert(var1, var2);}", cl.Encode()); }
public void TestExpressionManyArgs() { var v1 = new JsVariable("var1"); var v2 = new JsVariable("var2"); var cl = new JsClosure(new JsCall("alert", v1, v2), v2, v1); Assert.AreEqual("function(var2, var1){alert(var1, var2)}", cl.Encode()); }
public IJsExpression ToJsExpression() { var component = this; var script = new JsClosure(component.Init); return(new HtmlFragment(ComponentRenderingHelper.GetStartTag(this) + ComponentRenderingHelper.GetEndTag(this), script).ToJsExpression()); }
public void TestEncodeOnLoadAsHtml() { string result = new JsClosure(() => { JsContext.Add(new JsCall("init")); JsContext.Add(new JsCall("init2", 123)); }).EncodeOnLoadAsHtml(); Assert.AreEqual("<script>jQuery(function(){init();init2(123);})</script>", result); }
/** * Renders view fragment for the Form, using the specified model. * Generates javascript to initialize all rendered components. * * @param form Form of the fragment to be rendered * @param fragment fragment name * @param model model for the fragment view * @return HtmlFragment with rendered HTML and initialization script */ public HtmlFragment RenderFragment(Form form, string fragment, object model) { form.FormEngine = this; var reg = new RenderingContext(form); var builder = new StringBuilder(); reg.Collect(() => builder.Append(_viewRenderer.RenderFragment(form, fragment, model))); var script = new JsClosure(() => { foreach (var comp in reg.Components) { comp.Init(); } }); return(new HtmlFragment(builder.ToString(), script)); }
/** * 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)); }
public HtmlFragment(string html, JsClosure script) { Html = html; Script = script; }
public void TestExpressionNoArgs() { var cl = new JsClosure(new JsCall("init")); Assert.AreEqual("function(){init()}", cl.Encode()); }