private void LoadAndSelectList(bool forceReload = false) { lbOptions.SelectionMode = AllowMultiple ? ListSelectionMode.Multiple : ListSelectionMode.Single; if (forceReload) { // Keep selected value _selectedValues = lbOptions.Items.Cast <ListItem>().Where(x => x.Selected).Select(x => x.Value).ToList(); // Clears values if forced reload is requested lbOptions.Items.Clear(); } if (lbOptions.Items.Count == 0) { try { var def = new SpecialFieldsDefinition(null, FieldInfo, ContextResolver, SortItems); if (string.IsNullOrEmpty(MacroSource)) { if (string.IsNullOrEmpty(QuerySource)) { // Load from text source def.LoadFromText(Options); } else { // Load from query source def.LoadFromQuery(QuerySource); } } else { // Load from macro source def.LoadFromMacro(MacroSource, ValueFormat, TextFormat); } def.FillItems(lbOptions.Items); } catch (Exception ex) { DisplayException(ex); } foreach (ListItem lbOptionsItem in lbOptions.Items) { if (_selectedValues != null && _selectedValues.Contains(lbOptionsItem.Value)) { lbOptionsItem.Selected = true; } } lbOptions.Items.Insert(0, new ListItem(String.Empty, String.Empty)); } }
/// <summary> /// Loads text into textbox from value or from 'QueryColumnName' column. /// </summary> /// <param name="value">Value parameter</param> /// <returns>Returns text of options or query</returns> private string LoadTextFromData(string value) { InitOptions(); txtValue.Editor.ValueIsMacro = false; // Options data if (!String.IsNullOrEmpty(value)) { lstOptions.SelectedIndex = ListSourceIndex; // Get string representation SpecialFieldsDefinition def = new SpecialFieldsDefinition(null, FieldInfo, ContextResolver); def.LoadFromText(value); return(def.ToString()); } // Query selected if (ContainsColumn(QueryColumnName)) { string query = ValidationHelper.GetString(Form.Data.GetValue(QueryColumnName), string.Empty).Trim(); if (!String.IsNullOrEmpty(query)) { lstOptions.SelectedIndex = SqlSourceIndex; if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Form", "EditSQLQueries")) { mDisabledSql = true; } return(query); } } // Macro data source selected if (ContainsColumn(MacroColumnName)) { string macro = ValidationHelper.GetString(Form.Data.GetValue(MacroColumnName), string.Empty).Trim(); if (!String.IsNullOrEmpty(macro)) { lstOptions.SelectedIndex = MacroSourceIndex; txtValue.Editor.ValueIsMacro = true; return(MacroProcessor.RemoveDataMacroBrackets(macro)); } } return(null); }
/// <summary> /// Loads text into textbox from value or from 'QueryColumnName' column. /// </summary> /// <param name="value">Value parameter</param> /// <returns>Returns text of options or query</returns> private string LoadTextFromData(string value) { InitOptions(); // Options data if (!String.IsNullOrEmpty(value)) { lstOptions.SelectedIndex = ListSourceIndex; // Get string representation SpecialFieldsDefinition def = new SpecialFieldsDefinition(null, FieldInfo, ContextResolver); def.LoadFromText(value); return def.ToString(); } // Query selected else if (ContainsColumn(QueryColumnName)) { string query = ValidationHelper.GetString(Form.Data.GetValue(QueryColumnName), string.Empty).Trim(); if (!String.IsNullOrEmpty(query)) { lstOptions.SelectedIndex = SqlSourceIndex; if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Form", "EditSQLQueries")) { disabledSql = true; } return query; } // Macro data source selected else if (ContainsColumn(MacroColumnName)) { string macro = ValidationHelper.GetString(Form.Data.GetValue(MacroColumnName), string.Empty).Trim(); if (!String.IsNullOrEmpty(macro)) { lstOptions.SelectedIndex = MacroSourceIndex; return macro; } } } return null; }