using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CMS.CMSHelper; using CMS.FormControls; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.SiteProvider; public partial class CMSModules_MessageBoards_FormControls_SelectBoardWithAll : FormEngineUserControl { #region "Variables" private bool siteNameIsAll = false; private bool siteNameAvailable = false; #endregion #region "Public properties" /// /// Gets or sets the field value. /// public override object Value { get { EnsureChildControls(); return selectBoard.Value; } set { EnsureChildControls(); selectBoard.Value = value; } } #endregion #region "Methods" protected void Page_Load(object sender, EventArgs e) { SetFormSiteName(); selectBoard.AddAllItemsRecord = true; } protected void Page_PreRender(object sender, EventArgs e) { bool reloaded = false; selectBoard.Enabled = true; if (siteNameIsAll) { selectBoard.Enabled = false; if (!URLHelper.IsPostback()) { // Load the uniselector in order to select the ##all## value selectBoard.ReloadData(true); reloaded = true; } if (selectBoard.DropDownSingleSelect.Items.Count > 0) { selectBoard.DropDownSingleSelect.SelectedIndex = 0; } } if (URLHelper.IsPostback() && (siteNameAvailable || siteNameIsAll)) { if (!reloaded) { selectBoard.ReloadData(true); } pnlUpdate.Update(); } } /// /// Creates child controls and loads update panel container if it is required. /// protected override void CreateChildControls() { // If selector is not defined load updat panel container if (selectBoard == null) { pnlUpdate.LoadContainer(); } // Call base method base.CreateChildControls(); } /// /// Sets the selectedSiteId if the SiteName field is available in the form. /// private void SetFormSiteName() { if (DependsOnAnotherField && (Form != null) && Form.IsFieldAvailable("SiteName")) { string siteName = ValidationHelper.GetString(Form.GetFieldValue("SiteName"), ""); if (String.IsNullOrEmpty(siteName) || siteName.EqualsCSafe("##all##", true)) { siteNameIsAll = true; return; } else if (siteName.EqualsCSafe("##currentsite##", true)) { siteName = CMSContext.CurrentSiteName; } if (!String.IsNullOrEmpty(siteName)) { SiteInfo siteObj = SiteInfoProvider.GetSiteInfo(siteName); if (siteObj != null) { selectBoard.SiteID = siteObj.SiteID; siteNameAvailable = true; return; } } } selectBoard.SiteID = CMSContext.CurrentSiteID; } #endregion }