internal void SetUpClickableControl(WebControl clickableControl) { if (resource == null && action == null && script == "") { return; } clickableControl.CssClass = clickableControl.CssClass.ConcatenateWithSpace("ewfClickable"); if (resource != null && EwfPage.Instance.IsAutoDataUpdater) { action = HyperlinkBehavior.GetHyperlinkPostBackAction(resource); resource = null; } Func <string> scriptGetter; if (resource != null) { scriptGetter = () => "location.href = '" + EwfPage.Instance.GetClientUrl(resource.GetUrl()) + "'; return false"; } else if (action != null) { action.AddToPageIfNecessary(); scriptGetter = () => action.GetJsStatements() + " return false"; } else { scriptGetter = () => script; } // Defer script generation until after all controls have IDs. EwfPage.Instance.PreRender += delegate { clickableControl.AddJavaScriptEventScript(JsWritingMethods.onclick, scriptGetter()); }; }
void ControlTreeDataLoader.LoadData() { var url = ""; if (destinationResourceInfo != null && !(destinationResourceInfo.AlternativeMode is DisabledResourceMode)) { url = destinationResourceInfo.GetUrl(); Attributes.Add("href", this.GetClientUrl(url)); } if (isPostBackButton && url.Any()) { var postBackAction = HyperlinkBehavior.GetHyperlinkPostBackAction(destinationResourceInfo); postBackAction.AddToPageIfNecessary(); PreRender += delegate { this.AddJavaScriptEventScript(JsWritingMethods.onclick, postBackAction.GetJsStatements() + " return false"); }; } if (navigatesInNewWindow) { Attributes.Add("target", "_blank"); } if (popUpWindowSettings != null && url.Any()) { this.AddJavaScriptEventScript(JsWritingMethods.onclick, JsWritingMethods.GetPopUpWindowScript(url, this, popUpWindowSettings) + " return false"); } if (navigatesInOpeningWindow && (destinationResourceInfo == null || url.Any())) { var openingWindowNavigationScript = destinationResourceInfo != null ? "opener.document.location = '" + this.GetClientUrl(url) + "'; " : ""; this.AddJavaScriptEventScript(JsWritingMethods.onclick, openingWindowNavigationScript + "window.close(); return false"); } CssClass = CssClass.ConcatenateWithSpace("ewfClickable"); if (destinationResourceInfo?.AlternativeMode is NewContentResourceMode) { CssClass = CssClass.ConcatenateWithSpace(ActionComponentCssElementCreator.NewContentClass.ClassName); } ActionControlStyle.SetUpControl(this, url); if (destinationResourceInfo?.AlternativeMode is DisabledResourceMode) { var message = ((DisabledResourceMode)destinationResourceInfo.AlternativeMode).Message; new ToolTip(EnterpriseWebFramework.Controls.ToolTip.GetToolTipTextControl(message.Any() ? message : Translation.ThePageYouRequestedIsDisabled), this); } else if (toolTip != null || toolTipControl != null) { new ToolTip(toolTipControl ?? EnterpriseWebFramework.Controls.ToolTip.GetToolTipTextControl(toolTip), this); } }