private void PrepareLabel(BocCheckBoxRenderingContext renderingContext, string description, Label labelControl) { if (renderingContext.Control.IsDescriptionEnabled) { labelControl.Text = description; labelControl.Width = Unit.Empty; labelControl.Height = Unit.Empty; labelControl.ApplyStyle(renderingContext.Control.LabelStyle); } }
private void PrepareImage(BocCheckBoxRenderingContext renderingContext, Image imageControl, string description) { var imageUrl = ResourceUrlFactory.CreateThemedResourceUrl( typeof(BocCheckBox), ResourceType.Image, renderingContext.Control.Value.Value ? c_trueIcon : c_falseIcon); imageControl.ImageUrl = imageUrl.GetUrl(); imageControl.AlternateText = description ?? string.Empty; imageControl.GenerateEmptyAlternateText = true; }
/// <summary> /// Renders an image and label in readonly mode, a checkbox and label in edit mode. /// </summary> public void Render(BocCheckBoxRenderingContext renderingContext) { ArgumentUtility.CheckNotNull("renderingContext", renderingContext); AddAttributesToRender(renderingContext); renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span); var checkBoxControl = new HtmlInputCheckBox { ID = renderingContext.Control.GetValueName(), ClientIDMode = ClientIDMode.Static }; var labelControl = new Label(); string description = GetDescription(renderingContext); if (renderingContext.Control.IsReadOnly) { var imageControl = new Image(); PrepareImage(renderingContext, imageControl, description); renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Id, renderingContext.Control.GetValueName()); if (renderingContext.Control.Value.HasValue) { renderingContext.Writer.AddAttribute("data-value", renderingContext.Control.Value.Value.ToString()); } renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span); imageControl.RenderControl(renderingContext.Writer); renderingContext.Writer.RenderEndTag(); PrepareLabel(renderingContext, description, labelControl); labelControl.RenderControl(renderingContext.Writer); } else { bool hasClientScript = DetermineClientScriptLevel(renderingContext); if (hasClientScript) { PrepareScripts(renderingContext, checkBoxControl, labelControl); } checkBoxControl.Checked = renderingContext.Control.Value.Value; checkBoxControl.Disabled = !renderingContext.Control.Enabled; checkBoxControl.RenderControl(renderingContext.Writer); PrepareLabel(renderingContext, description, labelControl); labelControl.RenderControl(renderingContext.Writer); } renderingContext.Writer.RenderEndTag(); }
private void RegisterStartupScriptIfNeeded(BocCheckBoxRenderingContext renderingContext) { if (renderingContext.Control.Page.ClientScript.IsStartupScriptRegistered(typeof(BocCheckBoxRenderer), s_startUpScriptKey)) { return; } string startupScript = string.Format( "BocCheckBox_InitializeGlobals ('{0}', '{1}');", renderingContext.Control.DefaultTrueDescription, renderingContext.Control.DefaultFalseDescription); renderingContext.Control.Page.ClientScript.RegisterStartupScriptBlock(renderingContext.Control, typeof(BocCheckBoxRenderer), s_startUpScriptKey, startupScript); }
private string GetDescription(BocCheckBoxRenderingContext renderingContext) { string trueDescription = null; string falseDescription = null; if (renderingContext.Control.IsDescriptionEnabled) { string defaultTrueDescription = renderingContext.Control.DefaultTrueDescription; string defaultFalseDescription = renderingContext.Control.DefaultFalseDescription; trueDescription = (string.IsNullOrEmpty(renderingContext.Control.TrueDescription) ? defaultTrueDescription : renderingContext.Control.TrueDescription); falseDescription = (string.IsNullOrEmpty(renderingContext.Control.FalseDescription) ? defaultFalseDescription : renderingContext.Control.FalseDescription); } return(renderingContext.Control.Value.Value ? trueDescription : falseDescription); }
private string GetScriptParameters(BocCheckBoxRenderingContext renderingContext) { string label = renderingContext.Control.IsDescriptionEnabled ? "$(this).parent().children('span').first()[0]" : "null"; string checkBox = "$(this).parent().children('input').first()[0]"; string script = " (" + checkBox + ", " + label + ", " + (string.IsNullOrEmpty(renderingContext.Control.TrueDescription) ? "null" : "'" + renderingContext.Control.TrueDescription + "'") + ", " + (string.IsNullOrEmpty(renderingContext.Control.FalseDescription) ? "null" : "'" + renderingContext.Control.FalseDescription + "'") + ");"; if (renderingContext.Control.IsAutoPostBackEnabled) { script += renderingContext.Control.Page.ClientScript.GetPostBackEventReference(renderingContext.Control, "") + ";"; } return(script); }
private void PrepareScripts(BocCheckBoxRenderingContext renderingContext, HtmlInputCheckBox checkBoxControl, Label labelControl) { string checkBoxScript; string labelScript; if (renderingContext.Control.Enabled) { RegisterStartupScriptIfNeeded(renderingContext); string script = GetScriptParameters(renderingContext); checkBoxScript = "BocCheckBox_OnClick" + script; labelScript = "BocCheckBox_ToggleCheckboxValue" + script; } else { checkBoxScript = "return false;"; labelScript = "return false;"; } checkBoxControl.Attributes.Add("onclick", checkBoxScript); labelControl.Attributes.Add("onclick", labelScript); }
private bool DetermineClientScriptLevel(BocCheckBoxRenderingContext renderingContext) { return(!renderingContext.Control.IsDesignMode); }