/// <summary> /// Renders the contents inside the control begin and end tags. /// </summary> protected override void RenderContents(IHtmlWriter writer, RenderContext context) { // render template writer.AddKnockoutDataBind("text", "errorMessage"); writer.RenderBeginTag("li"); writer.RenderEndTag(); }
protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { writer.AddAttribute("class", "form-horizontal"); writer.AddAttribute("role", "form"); base.AddAttributesToRender(writer, context); }
/// <summary> /// Renders the contents inside the control begin and end tags. /// </summary> protected override void RenderContents(IHtmlWriter writer, RenderContext context) { if (RenderOnServer) { // render items bool first = true; foreach (var item in GetIEnumerableFromDataSource(DataSource)) { var value = string.IsNullOrEmpty(ValueMember) ? item : ReflectionUtils.GetObjectProperty(item, ValueMember); var text = string.IsNullOrEmpty(DisplayMember) ? item : ReflectionUtils.GetObjectProperty(item, DisplayMember); if (first) { writer.WriteUnencodedText(Environment.NewLine); first = false; } writer.WriteUnencodedText(" "); //Indent writer.AddAttribute("value", value != null ? value.ToString() : ""); writer.RenderBeginTag("option"); writer.WriteText(text != null ? text.ToString() : ""); writer.RenderEndTag(); writer.WriteUnencodedText(Environment.NewLine); } } }
/// <summary> /// Adds all attributes that should be added to the control begin tag. /// </summary> protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { if (!RenderOnServer) { writer.AddKnockoutDataBind("options", this, DataSourceProperty, () => { }); if (!string.IsNullOrEmpty(DisplayMember)) { writer.AddKnockoutDataBind("optionsText", KnockoutHelper.MakeStringLiteral(DisplayMember)); } if (!string.IsNullOrEmpty(ValueMember)) { writer.AddKnockoutDataBind("optionsValue", KnockoutHelper.MakeStringLiteral(ValueMember)); } } // changed event var selectionChangedBinding = GetCommandBinding(SelectionChangedProperty); if (selectionChangedBinding != null) { writer.AddAttribute("onchange", KnockoutHelper.GenerateClientPostBackScript(selectionChangedBinding, context, this, isOnChange: true)); } // selected value writer.AddKnockoutDataBind("value", this, SelectedValueProperty, () => { }); base.AddAttributesToRender(writer, context); }
protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { RouteLinkHelpers.WriteRouteLinkHrefAttribute(RouteName, this, writer, context); writer.AddKnockoutDataBind("text", this, TextProperty, () => { }); base.AddAttributesToRender(writer, context); }
protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { if (Icon != GlyphIcons.Empty) { var iconName = KnockoutHelper.ConvertToCamelCase(Icon.ToString().Replace("_", "-")); writer.AddAttribute("class", "glyphicon glyphicon-" + iconName); } base.AddAttributesToRender(writer, context); }
/// <summary> /// Renders the control into the specified writer. /// </summary> protected override void RenderControl(IHtmlWriter writer, RenderContext context) { // render resource links var resources = context.ResourceManager.GetResourcesInOrder().Where(r => r.GetRenderPosition() == ResourceRenderPosition.Head); foreach (var resource in resources) { resource.Render(writer); } }
/// <summary> /// Adds all attributes that should be added to the control begin tag. /// </summary> protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { var expression = KnockoutHelper.GetValidationTargetExpression(this); if (expression != null) { writer.AddKnockoutDataBind("foreach", "dotvvm.extensions.validation.getValidationErrors(" + expression + ")"); } base.AddAttributesToRender(writer, context); }
protected override void RenderContents(IHtmlWriter writer, RenderContext context) { RenderLabel(writer); writer.AddAttribute("class", "col-sm-10"); writer.RenderBeginTag("div"); RenderChildren(writer, context); writer.RenderEndTag(); }
public static void WriteRouteLinkHrefAttribute(string routeName, HtmlGenericControl control, IHtmlWriter writer, RenderContext context) { if (!control.RenderOnServer) { writer.AddKnockoutDataBind("attr", "{ href: " + GenerateKnockoutHrefExpression(routeName, control, context) + "}"); } else { writer.AddAttribute("href", EvaluateRouteUrl(routeName, control, context)); } }
/// <summary> /// Adds all attributes that should be added to the control begin tag. /// </summary> protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { writer.AddKnockoutDataBind("enable", this, EnabledProperty, () => { if (!Enabled) { writer.AddAttribute("disabled", "disabled"); } }); base.AddAttributesToRender(writer, context); }
protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { if (!RenderOnServer) { if (!string.IsNullOrWhiteSpace(EmptyItemText)) { writer.AddKnockoutDataBind("optionsCaption", KnockoutHelper.MakeStringLiteral(EmptyItemText)); } } base.AddAttributesToRender(writer, context); }
public static string GenerateKnockoutHrefExpression(string routeName, HtmlGenericControl control, RenderContext context) { var link = GenerateRouteLinkCore(routeName, control, context); if ((bool)control.GetValue(Internal.IsSpaPageProperty)) { return string.Format("'#!/' + {0}", link); } else { return string.Format("'{0}' + {1}", context.RequestContext.TranslateVirtualPath("~/"), link); } }
/// <summary> /// Adds all attributes that should be added to the control begin tag. /// </summary> protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { var validatedValueBinding = GetValueBinding(ValidatedValueProperty); if (validatedValueBinding != null) { writer.AddKnockoutDataBind("dotvvmValidation", this, ValidatedValueProperty, () => { }); var options = string.Format("{{'mode':'{0}', 'cssClass':{1}}}", KnockoutHelper.ConvertToCamelCase(Mode.ToString()), KnockoutHelper.MakeStringLiteral(InvalidCssClass)); writer.AddKnockoutDataBind("dotvvmValidationOptions", options); } base.AddAttributesToRender(writer, context); }
public static string EvaluateRouteUrl(string routeName, HtmlGenericControl control, RenderContext context) { var coreUrl = GenerateRouteUrlCore(routeName, control, context); if ((bool)control.GetValue(Internal.IsSpaPageProperty)) { return "#!/" + coreUrl; } else { return context.RequestContext.TranslateVirtualPath(coreUrl); } }
private static string GenerateRouteLinkCore(string routeName, HtmlGenericControl control, RenderContext context) { var route = GetRoute(context, routeName); var parameters = ComposeNewRouteParameters(control, context, route); // generate the function call var sb = new StringBuilder(); sb.Append("dotvvm.buildRouteUrl("); sb.Append(JsonConvert.SerializeObject(route.Url)); sb.Append(", {"); sb.Append(string.Join(", ", parameters.Select(p => TranslateRouteParameter(control, p)))); sb.Append("})"); return sb.ToString(); }
protected override void RenderContents(IHtmlWriter writer, RenderContext context) { if (RenderOnServer) { if (!string.IsNullOrWhiteSpace(EmptyItemText)) { writer.RenderBeginTag("option"); writer.WriteText(EmptyItemText); writer.RenderEndTag(); } } base.RenderContents(writer, context); }
/// <summary> /// Renders the contents inside the control begin and end tags. /// </summary> protected override void RenderContents(IHtmlWriter writer, RenderContext context) { var textBinding = GetBinding(TextProperty); if (textBinding == null && !string.IsNullOrEmpty(Text)) { // render static value of the text property writer.WriteText(Text); } else { // render control contents RenderChildren(writer, context); } }
/// <summary> /// Adds all attributes that should be added to the control begin tag. /// </summary> protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { writer.AddAttribute("href", "#"); var clickBinding = GetCommandBinding(ClickProperty); if (clickBinding != null) { writer.AddAttribute("onclick", KnockoutHelper.GenerateClientPostBackScript(clickBinding, context, this)); } writer.AddKnockoutDataBind("text", this, TextProperty, () => { }); base.AddAttributesToRender(writer, context); }
private static string GenerateRouteUrlCore(string routeName, HtmlGenericControl control, RenderContext context) { var route = GetRoute(context, routeName); var parameters = ComposeNewRouteParameters(control, context, route); // evaluate bindings on server foreach (var param in parameters.Where(p => p.Value is IStaticValueBinding).ToList()) { EnsureValidBindingType(param.Value as BindingExpression); parameters[param.Key] = ((ValueBindingExpression)param.Value).Evaluate(control, null); // TODO: see below } // generate the URL return route.BuildUrl(parameters); }
protected override void RenderContents(IHtmlWriter writer, RenderContext context) { var textBinding = GetBinding(TextProperty); if (textBinding?.Javascript == null) { if (!string.IsNullOrEmpty(Text)) { writer.WriteText(Text); } else { base.RenderContents(writer, context); } } }
public void RenderPage(DotvvmRequestContext context, DotvvmView view) { // embed resource links EmbedResourceLinks(view); // prepare the render context var renderContext = new RenderContext(context); // get the HTML using (var textWriter = new StringWriter()) { var htmlWriter = new HtmlWriter(textWriter, context); view.Render(htmlWriter, renderContext); context.RenderedHtml = textWriter.ToString(); } }
protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { writer.AddAttribute("id", ID); writer.AddAttribute("name", Constants.SpaContentPlaceHolderID); writer.AddAttribute(Constants.SpaContentPlaceHolderDataAttributeName, GetSpaContentPlaceHolderUniqueId()); if (!string.IsNullOrEmpty(DefaultRouteName)) { var route = context.RequestContext.Configuration.RouteTable[DefaultRouteName]; if (route.ParameterNames.Any()) { throw new ArgumentException(string.Format("The route {0} specified in SpaContentPlaceHolder DefaultRouteName property cannot contain route parameters!", DefaultRouteName)); } writer.AddAttribute(Constants.SpaContentPlaceHolderDefaultRouteDataAttributeName, route.Url); } base.AddAttributesToRender(writer, context); }
/// <summary> /// Adds all attributes that should be added to the control begin tag. /// </summary> protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { if (ButtonTagName == ButtonTagName.button) { TagName = "button"; } writer.AddAttribute("type", IsSubmitButton ? "submit" : "button"); var clickBinding = GetBinding(ClickProperty); if (clickBinding is CommandBindingExpression) { writer.AddAttribute("onclick", KnockoutHelper.GenerateClientPostBackScript((CommandBindingExpression)clickBinding, context, this)); } writer.AddKnockoutDataBind("value", this, TextProperty, () => writer.AddAttribute("value", Text)); base.AddAttributesToRender(writer, context); }
/// <summary> /// Renders the control into the specified writer. /// </summary> protected override void RenderControl(IHtmlWriter writer, RenderContext context) { // render resource links var resources = context.ResourceManager.GetResourcesInOrder().Where(r => r.GetRenderPosition() == ResourceRenderPosition.Body); foreach (var resource in resources) { resource.Render(writer); } // render the serialized viewmodel var serializedViewModel = context.RequestContext.GetSerializedViewModel(); writer.AddAttribute("type", "hidden"); writer.AddAttribute("id", "__dot_viewmodel_" + context.CurrentPageArea); writer.AddAttribute("value", serializedViewModel); writer.RenderSelfClosingTag("input"); // init on load writer.RenderBeginTag("script"); writer.WriteUnencodedText(string.Format("dotvvm.onDocumentReady(function () {{ dotvvm.init('{0}', '{1}'); }});", context.CurrentPageArea, Thread.CurrentThread.CurrentUICulture.Name)); writer.RenderEndTag(); }
/// <summary> /// Adds all attributes that should be added to the control begin tag. /// </summary> protected override void AddAttributesToRender(IHtmlWriter writer, RenderContext context) { writer.AddKnockoutDataBind("value", this, TextProperty, () => { if (Type != TextBoxType.MultiLine) { writer.AddAttribute("value", "Text"); } }, UpdateTextAfterKeydown ? "afterkeydown" : null); if (Type == TextBoxType.Normal) { TagName = "input"; if (!Attributes.ContainsKey("type")) { writer.AddAttribute("type", "text"); } } else if (Type == TextBoxType.Password) { writer.AddAttribute("type", "password"); TagName = "input"; } else if (Type == TextBoxType.MultiLine) { TagName = "textarea"; } // prepare changed event attribute var changedBinding = GetCommandBinding(ChangedProperty); if (changedBinding != null) { writer.AddAttribute("onchange", KnockoutHelper.GenerateClientPostBackScript(changedBinding, context, this, true, isOnChange: true)); } base.AddAttributesToRender(writer, context); }
/// <summary> /// Renders the children. /// </summary> protected override void RenderControl(IHtmlWriter writer, RenderContext context) { // label var textBinding = GetBinding(TextProperty); var labelRequired = textBinding != null || !string.IsNullOrEmpty(Text) || !HasOnlyWhiteSpaceContent(); if (labelRequired) { writer.RenderBeginTag("label"); } // prepare changed event attribute var changedBinding = GetCommandBinding(ChangedProperty); if (changedBinding != null) { writer.AddAttribute("onclick", KnockoutHelper.GenerateClientPostBackScript(changedBinding, context, this, true, true, isOnChange: true)); } // handle enabled attribute writer.AddKnockoutDataBind("enable", this, EnabledProperty, () => { if (!Enabled) { writer.AddAttribute("disabled", "disabled"); } }); // add ID AddControlIdAttribute(writer); // render the radio button RenderInputTag(writer); // render the label if (labelRequired) { if (textBinding != null) { writer.AddKnockoutDataBind("text", this, TextProperty, () => { }); writer.RenderBeginTag("span"); writer.RenderEndTag(); } else if (!string.IsNullOrEmpty(Text)) { writer.WriteText(Text); } else if (!HasOnlyWhiteSpaceContent()) { RenderChildren(writer, context); } writer.RenderEndTag(); } }
protected override void RenderContents(IHtmlWriter writer, RenderContext context) { writer.WriteUnencodedText(Text); }
protected override void RenderEndTag(IHtmlWriter writer, RenderContext context) { base.RenderEndTag(writer, context); writer.RenderEndTag(); }
protected override void RenderBeginTag(IHtmlWriter writer, RenderContext context) { writer.RenderBeginTag("div"); base.RenderBeginTag(writer, context); }