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;
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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)));
        }