using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CMS.FormControls; public partial class CMSModules_Newsletters_FormControls_NewsletterTemplateSelector : FormEngineUserControl { #region "Properties" /// /// Gets or sets the enabled state of the control. /// public override bool Enabled { get { return uniNewsletterTemplate.Enabled; } set { uniNewsletterTemplate.Enabled = value; } } /// /// Gets or sets field value. /// public override object Value { get { return uniNewsletterTemplate.Value; } set { EnsureChildControls(); uniNewsletterTemplate.Value = value; } } /// /// Gets or sets WHERE condition. /// public string WhereCondition { get { return uniNewsletterTemplate.WhereCondition; } set { uniNewsletterTemplate.WhereCondition = value; } } /// /// Allows to set AutoPostBack property to simple-select drop down list. /// public bool AutoPostBack { private get; set; } /// /// 'On selection changed' event. /// public event EventHandler OnSelectionChaned; #endregion #region "Methods" protected void Page_Load(object sender, EventArgs e) { uniNewsletterTemplate.OrderBy = "TemplateDisplayName"; if ((uniNewsletterTemplate.DropDownSingleSelect != null) && (AutoPostBack)) { // Allow auto-postback to dropdown list and register event handler uniNewsletterTemplate.DropDownSingleSelect.AutoPostBack = AutoPostBack; uniNewsletterTemplate.OnSelectionChanged += new EventHandler(uniNewsletterTemplate_OnSelectionChanged); ScriptManager pageScriptManager = ScriptManager.GetCurrent(Page); if (pageScriptManager != null) { // Register dropdown list as a trigger for postback (selector uses update panel by default) pageScriptManager.RegisterPostBackControl(uniNewsletterTemplate.DropDownSingleSelect); } } } protected void uniNewsletterTemplate_OnSelectionChanged(object sender, EventArgs e) { // Update selected value and raise event Value = uniNewsletterTemplate.DropDownSingleSelect.SelectedValue; if (OnSelectionChaned != null) { OnSelectionChaned(sender, e); } } /// /// Reloads the selector's data. /// /// Indicates whether data should be forcibly reloaded public void Reload(bool forceReload) { uniNewsletterTemplate.Reload(forceReload); } #endregion }