protected override void InitializeDataSourceSettings(Item item) { Assert.ArgumentNotNull(item, nameof(item)); base.InitializeDataSourceSettings(item); var queryStringId = WebUtil.GetSafeQueryString("id"); if (string.IsNullOrEmpty(DefaultSelection) && string.IsNullOrEmpty(queryStringId) && !ShowItems) { var settings = DataSourceSettingsManager.GetSettings(item); if (settings != null) { Items.Clear(); Items.AddRange(settings); } } if (!string.IsNullOrEmpty(DefaultSelection) || (!string.IsNullOrEmpty(queryStringId) && ID.IsID(queryStringId))) { if (!ShowItems && Items.Count > 0) { Items.Clear(); } string itName, itValue; itName = itValue = string.Empty; var it = Context.Database.GetItem(queryStringId); if (it != null) { itName = it.Fields.FirstOrDefault(f => f.Name.ToLower() == "name")?.Value?.ToString(); if (string.IsNullOrEmpty(itName)) { itName = it.DisplayName; } itValue = it.Fields.FirstOrDefault(f => f.Name.ToLower() == "email")?.Value?.ToString(); DefaultSelection = $"{itValue};{itName}"; var itemPassed = Items.FirstOrDefault(i => i.Text.ToLower() == itName); var isItemPassed = itemPassed != null; if (!isItemPassed) { itemPassed = new ListFieldItem { Text = itName }; } itemPassed.ItemId = queryStringId; itemPassed.Text = itName; itemPassed.Value = ShowValues ? itValue : queryStringId; itemPassed.Selected = true; if (!isItemPassed) { Items.Add(itemPassed); } } } }
protected override ListFieldItemCollection UpdateDataSourceSettings(Item item) { Assert.ArgumentNotNull(item, nameof(item)); var listFieldItemCollection = new ListFieldItemCollection(); listFieldItemCollection.AddRange(Items); DataSourceSettingsManager.SaveSettings(item, listFieldItemCollection); return(listFieldItemCollection); }