/// <summary> /// Loads the drop down items. /// </summary> /// <param name="picker">The picker.</param> /// <param name="includeEmptyOption">if set to <c>true</c> [include empty option].</param> internal static void LoadDropDownItems(IDefinedValuePicker picker, bool includeEmptyOption) { var selectedItems = picker.SelectedDefinedValuesId; picker.Items.Clear(); if (picker.DefinedTypeId.HasValue) { if (includeEmptyOption) { // add Empty option first picker.Items.Add(new ListItem()); } var dt = DefinedTypeCache.Get(picker.DefinedTypeId.Value); var definedValuesList = dt?.DefinedValues .Where(a => a.IsActive || picker.IncludeInactive || selectedItems.Contains(a.Id)) .OrderBy(v => v.Order).ThenBy(v => v.Value).ToList(); if (definedValuesList != null && definedValuesList.Any()) { foreach (var definedValue in definedValuesList) { var li = new ListItem(picker.DisplayDescriptions ? definedValue.Description : definedValue.Value, definedValue.Id.ToString()); li.Selected = selectedItems.Contains(definedValue.Id); picker.Items.Add(li); } } } }
/// <summary> /// Loads the drop down items. /// </summary> /// <param name="picker">The picker.</param> /// <param name="includeEmptyOption">if set to <c>true</c> [include empty option].</param> internal static void LoadDropDownItems(IDefinedValuePicker picker, bool includeEmptyOption) { var selectedItems = picker.Items.Cast <ListItem>() .Where(i => i.Selected) .Select(i => i.Value).AsIntegerList(); picker.Items.Clear(); if (picker.DefinedTypeId.HasValue) { if (includeEmptyOption) { // add Empty option first picker.Items.Add(new ListItem()); } var dt = DefinedTypeCache.Get(picker.DefinedTypeId.Value); if (dt != null && dt.DefinedValues.Any()) { foreach (var definedValue in dt.DefinedValues.OrderBy(v => v.Order).ThenBy(v => v.Value)) { var li = new ListItem(picker.DisplayDescriptions ? definedValue.Description : definedValue.Value, definedValue.Id.ToString()); li.Selected = selectedItems.Contains(definedValue.Id); picker.Items.Add(li); } } } }