private string GetClickScript(DatePickerButtonRenderingContext renderingContext, bool hasClientScript) { string script; if (hasClientScript && renderingContext.Control.Enabled) { const string pickerActionButton = "this"; string pickerActionContainer = "document.getElementById ('" + renderingContext.Control.ContainerControlID.Replace('$', '_') + "')"; string pickerActionTarget = "document.getElementById ('" + renderingContext.Control.TargetControlID.Replace('$', '_') + "')"; string pickerUrl = "'" + GetDatePickerUrl() + "'"; Unit popUpWidth = PopUpWidth; string pickerWidth = "'" + popUpWidth + "'"; Unit popUpHeight = PopUpHeight; string pickerHeight = "'" + popUpHeight + "'"; script = "DatePicker_ShowDatePicker(" + pickerActionButton + ", " + pickerActionContainer + ", " + pickerActionTarget + ", " + pickerUrl + ", " + pickerWidth + ", " + pickerHeight + ");" + "return false;"; } else { script = "return false;"; } return(script); }
protected bool DetermineClientScriptLevel(DatePickerButtonRenderingContext renderingContext) { if (!renderingContext.Control.EnableClientScript) { return(false); } return(_clientScriptBehavior.IsBrowserCapableOfScripting(renderingContext.HttpContext, renderingContext.Control)); }
/// <summary> /// Renders a click-enabled image that shows a <see cref="DatePickerPage"/> on click, which puts the selected value /// into the control specified by <see cref="P:Control.TargetControlID"/>. /// </summary> public void Render(DatePickerButtonRenderingContext renderingContext) { ArgumentUtility.CheckNotNull("renderingContext", renderingContext); bool hasClientScript = DetermineClientScriptLevel(renderingContext); renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Id, renderingContext.Control.ClientID); string cssClass = string.IsNullOrEmpty(renderingContext.Control.CssClass) ? CssClassBase : renderingContext.Control.CssClass; if (!renderingContext.Control.Enabled) { cssClass += " " + CssClassDisabled; } renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass); // TODO: hyperLink.ApplyStyle (Control.DatePickerButtonStyle); bool canScript = (renderingContext.Control.EnableClientScript && renderingContext.Control.IsDesignMode) || hasClientScript; if (canScript) { string script = GetClickScript(renderingContext, hasClientScript); renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script); renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Href, "#"); } if (!renderingContext.Control.Enabled) { renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "disabled"); } renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.A); if (canScript) { string imageUrl = GetResolvedImageUrl(); renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Src, imageUrl); renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Alt, renderingContext.Control.AlternateText ?? string.Empty); renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Img); renderingContext.Writer.RenderEndTag(); } renderingContext.Writer.RenderEndTag(); }