/// <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(); }