using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CMS.UIControls; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.IO; using CMS.ExtendedControls; public partial class CMSAdminControls_UI_UniControls_UniButton : UniButton, IPostBackEventHandler { #region "Events" /// /// Fires when the button is clicked /// public event EventHandler Click; #endregion #region "Properties" /// /// Button control /// public CMSButton ButtonControl { get { return btn; } } /// /// Specifies whether the control is enabled or not /// public override bool Enabled { get { return base.Enabled; } set { btn.Enabled = value; hyperLink.Enabled = value; base.Enabled = value; } } #endregion #region "Methods" protected void ReloadData() { if (ShowAsButton) { // Setup as button btn.Text = GetText(); btn.OnClientClick = OnClientClick; btn.CssClass = CssClass; hyperLink.Visible = false; } else { btn.Visible = false; // URL string url = LinkUrl; if (!String.IsNullOrEmpty(url)) { url = URLHelper.ResolveUrl(url); } hyperLink.NavigateUrl = url; hyperLink.CssClass = CssClass; hyperLink.Target = LinkTarget; string imageUrl = ImageUrl; bool isImageUrl = !string.IsNullOrEmpty(imageUrl); // Link text string text = GetText(); lblText.Text = (!isImageUrl && string.IsNullOrEmpty(text)) ? url : text; // Link javascript string javascript = OnClientClick; string ev = LinkEvent; if (!String.IsNullOrEmpty(ev) || (Click != null)) { javascript += this.Page.ClientScript.GetPostBackEventReference(this, null) + "; return false;"; } if (!String.IsNullOrEmpty(javascript)) { hyperLink.Attributes.Add("onclick", javascript); } // Image if (isImageUrl) { image.ImageUrl = UIHelper.ResolveImageUrl(imageUrl); image.AlternateText = ImageAltText; image.ToolTip = ImageAltText; image.CssClass = ImageCssClass; } else { image.Visible = false; } } } /// /// Gets the button text /// protected string GetText() { if (!String.IsNullOrEmpty(LinkText)) { return LinkText; } else { return ResHelper.GetString(ResourceString); } } /// /// PreRender event handler /// protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); ReloadData(); } /// /// Button click handler /// public void btn_Click(object sender, EventArgs e) { RaisePostBackEvent(null); } /// /// Raises the postback event /// /// Event argument public void RaisePostBackEvent(string eventArgument) { var e = new EventArgs(); // Raise the click event if (Click != null) { Click(this, e); } // Raise the requested event string ev = this.LinkEvent; if (!String.IsNullOrEmpty(ev)) { ComponentEvents.RequestEvents.RaiseEvent(this, e, ev); } } #endregion }