public MultiSelectForm(MultiSelectOptions <T> options) { if (options.Items is null) { throw new ArgumentNullException(nameof(options.Items)); } if (options.Minimum < 0) { throw new ArgumentOutOfRangeException(nameof(options.Minimum), $"The minimum ({options.Minimum}) is not valid"); } if (options.Maximum < options.Minimum) { throw new ArgumentOutOfRangeException(nameof(options.Maximum), $"The maximum ({options.Maximum}) is not valid when minimum is set to ({options.Minimum})"); } _paginator = new Paginator <T>(options.Items, options.PageSize, Optional <T> .Empty, options.TextSelector); if (options.DefaultValues is not null) { foreach (var defaultValue in options.DefaultValues) { _selectedItems.Add(defaultValue); } } _options = options; }
public MultiSelect(MultiSelectOptions <T> options) : base(false) { // throw early when invalid options are passed if (options.Minimum < 0) { throw new ArgumentOutOfRangeException(nameof(options.Minimum), $"The minimum ({options.Minimum}) is not valid"); } if (options.Maximum < options.Minimum) { throw new ArgumentException($"The maximum ({options.Maximum}) is not valid when minimum is set to ({options.Minimum})", nameof(options.Maximum)); } _paginator = new Paginator <T>(options.Items, options.PageSize, Optional <T> .Empty, options.TextSelector); if (options.DefaultValues != null) { _selectedItems.AddRange(options.DefaultValues); } _options = options; }
public static IHtmlString MultiSelectList(this HtmlHelper helper, string name, IEnumerable <MultiSelectItem> items = null, MultiSelectOptions options = null) { MultiSelect ms = new MultiSelect(items, options); return(new HtmlString(ms.Render(name))); }