1234567891011121314151617181920212223242526272829 |
- <Select2 class="flex-fill" TItem="FeLibrary"
- TSource="FeLibrary[]"
- IdSelector="c => c.Key"
- TextSelector="@(c =>c.Name+" ("+c.Discs.Length+")")"
- FilterFunction="FilterLibrary"
- GetElementById="async (items, id, token) => items.FirstOrDefault(q=>q.Key==id)"
- Datasource="FnzDataSet.AllLibrary.OrderBy(p=>p.Key).ToArray()"
- Value="@SelectedLibs"
- Multiselect="false"
- OnValueChanged="OnValueChanged" />
- @code {
- [Parameter, Required]
- public List<FeLibrary> SelectedLibs { get; set; } = new();
- [Parameter] public EventCallback OnValueChanged { get; set; } = EventCallback.Empty;
- private async Task<List<FeLibrary>> FilterLibrary(IReadOnlyCollection<FeLibrary> source, string input, CancellationToken ct)
- {
- var result = new List<FeLibrary>();
- foreach (var item in source.Where(p => p.Name.StartsWith(input, StringComparison.OrdinalIgnoreCase))) result.Add(item);
- foreach (var item in source.Where(p => !p.Name.StartsWith(input, StringComparison.OrdinalIgnoreCase) && p.Name.Contains(input, StringComparison.OrdinalIgnoreCase))) result.Add(item);
- return result;
- }
- }
|