LoreSoft.Blazor.Controls
10.1.1
dotnet add package LoreSoft.Blazor.Controls --version 10.1.1
NuGet\Install-Package LoreSoft.Blazor.Controls -Version 10.1.1
<PackageReference Include="LoreSoft.Blazor.Controls" Version="10.1.1" />
paket add LoreSoft.Blazor.Controls --version 10.1.1
#r "nuget: LoreSoft.Blazor.Controls, 10.1.1"
// Install LoreSoft.Blazor.Controls as a Cake Addin #addin nuget:?package=LoreSoft.Blazor.Controls&version=10.1.1 // Install LoreSoft.Blazor.Controls as a Cake Tool #tool nuget:?package=LoreSoft.Blazor.Controls&version=10.1.1
Overview
The LoreSoft Blazor Controls project contains a collection of Blazor user controls.
- Demo: https://blazor.loresoft.com/
- NuGet: https://nuget.org/packages/LoreSoft.Blazor.Controls
- Source: https://github.com/loresoft/LoreSoft.Blazor.Controls
Installing
The LoreSoft.Blazor.Controls library is available on nuget.org via package name LoreSoft.Blazor.Controls
.
To install LoreSoft.Blazor.Controls, run the following command in the Package Manager Console
Install-Package LoreSoft.Blazor.Controls
Setup
To use, you need to include the following CSS and JS files in your index.html
(Blazor WebAssembly) or _Host.cshtml
(Blazor Server).
In the head tag add the following CSS.
<link rel="stylesheet" href="_content/LoreSoft.Blazor.Controls/BlazorControls.css" />
Typeahead Features
- Searching data by supplying a search function
- Template for search result, selected value, and footer
- Debounce support for smoother search
- Character limit before searching
- Multiselect support
- Built in form validation support
Typeahead Properties
Required
- Value - Bind to
Value
in single selection mode. Mutually exclusive toValues
property. - Values - Bind to
Values
in multiple selection mode. Mutually exclusive toValue
property. - SearchMethod - The method used to return search result
Optional
- AllowClear - Allow the selected value to be cleared
- ConvertMethod - The method used to convert search result type to the value type
- Debounce - Time to wait, in milliseconds, after last key press before starting a search
- Items - The initial list of items to show when there isn't any search text
- MinimumLength - Minimum number of characters before starting a search
- Placeholder - The placeholder text to show when nothing is selected
Templates
- ResultTemplate - User defined template for displaying a result in the results list
- SelectedTemplate - User defined template for displaying the selected item(s)
- NoRecordsTemplate - Template for when no items are found
- FooterTemplate - Template displayed at the end of the results list
- LoadingTemplate - Template displayed while searching
Typeahead Examples
Basic Example
State selection dropdown. Bind to Value
property for single selection mode.
<Typeahead SearchMethod="@SearchState"
Items="Data.StateList"
@bind-Value="@SelectedState"
Placeholder="State">
<SelectedTemplate Context="state">
@state.Name
</SelectedTemplate>
<ResultTemplate Context="state">
@state.Name
</ResultTemplate>
</Typeahead>
@code {
public StateLocation SelectedState { get; set; }
public Task<IEnumerable<StateLocation>> SearchState(string searchText)
{
var result = Data.StateList
.Where(x => x.Name.ToLower().Contains(searchText.ToLower()))
.ToList();
return Task.FromResult<IEnumerable<StateLocation>>(result);
}
}
Multiselect Example
When you want to be able to select multiple results. Bind to the Values
property. The target property must be type IList<T>
.
<Typeahead SearchMethod="@SearchPeople"
Items="Data.PersonList"
@bind-Values="@SelectedPeople"
Placeholder="Owners">
<SelectedTemplate Context="person">
@person.FullName
</SelectedTemplate>
<ResultTemplate Context="person">
@person.FullName
</ResultTemplate>
</Typeahead>
@code {
public IList<Person> SelectedPeople;
public Task<IEnumerable<Person>> SearchPeople(string searchText)
{
var result = Data.PersonList
.Where(x => x.FullName.ToLower().Contains(searchText.ToLower()))
.ToList();
return Task.FromResult<IEnumerable<Person>>(result);
}
}
GitHub Repository Search
Use Octokit to search for a GitHub repository.
<Typeahead SearchMethod="@SearchGithub"
@bind-Value="@SelectedRepository"
Placeholder="Repository"
MinimumLength="3">
<SelectedTemplate Context="repo">
@repo.FullName
</SelectedTemplate>
<ResultTemplate Context="repo">
<div class="github-repository clearfix">
<div class="github-avatar"><img src="@repo.Owner.AvatarUrl"></div>
<div class="github-meta">
<div class="github-title">@repo.FullName</div>
<div class="github-description">@repo.Description</div>
<div class="github-statistics">
<div class="github-forks"><i class="fa fa-flash"></i> @repo.ForksCount Forks</div>
<div class="github-stargazers"><i class="fa fa-star"></i> @repo.StargazersCount Stars</div>
<div class="github-watchers"><i class="fa fa-eye"></i> @repo.SubscribersCount Watchers</div>
</div>
</div>
</div>
</ResultTemplate>
</Typeahead>
@inject IGitHubClient GitHubClient;
@code {
public Repository SelectedRepository { get; set; }
public async Task<IEnumerable<Repository>> SearchGithub(string searchText)
{
var request = new SearchRepositoriesRequest(searchText);
var result = await GitHubClient.Search.SearchRepo(request);
return result.Items;
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. |
-
net8.0
- Microsoft.AspNetCore.Components (>= 8.0.11)
- Microsoft.AspNetCore.Components.Web (>= 8.0.11)
- System.Linq.Dynamic.Core (>= 1.4.9)
-
net9.0
- Microsoft.AspNetCore.Components (>= 9.0.0)
- Microsoft.AspNetCore.Components.Web (>= 9.0.0)
- System.Linq.Dynamic.Core (>= 1.4.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
10.1.1 | 383 | 11/18/2024 |
10.1.0 | 86 | 11/18/2024 |
10.0.0 | 141 | 11/13/2024 |
9.9.0 | 285 | 10/27/2024 |
9.8.8 | 1,176 | 8/28/2024 |
9.8.7 | 160 | 8/20/2024 |
9.8.6 | 301 | 8/19/2024 |
9.8.5 | 123 | 8/19/2024 |
9.8.4 | 121 | 8/18/2024 |
9.8.3 | 122 | 8/18/2024 |
9.8.2 | 130 | 8/18/2024 |
9.8.1 | 133 | 8/16/2024 |
9.8.0 | 118 | 8/16/2024 |
9.7.9 | 114 | 8/15/2024 |
9.7.8 | 168 | 8/14/2024 |
9.7.7 | 140 | 8/13/2024 |
9.7.6 | 76 | 8/2/2024 |
9.7.5 | 86 | 8/1/2024 |
9.7.4 | 146 | 7/30/2024 |
9.7.3 | 791 | 6/10/2024 |
9.7.2 | 150 | 6/1/2024 |
9.7.1 | 111 | 6/1/2024 |
9.7.0 | 115 | 5/31/2024 |
9.6.1 | 123 | 5/25/2024 |
9.6.0 | 120 | 5/25/2024 |
9.5.0 | 297 | 4/26/2024 |
9.4.1 | 1,522 | 4/12/2024 |
9.4.0 | 123 | 4/12/2024 |
9.3.0 | 117 | 4/12/2024 |
9.2.0 | 693 | 3/2/2024 |
9.1.0 | 572 | 1/14/2024 |
9.0.2 | 1,068 | 12/4/2023 |
9.0.1 | 160 | 12/4/2023 |
9.0.0 | 126 | 12/4/2023 |
8.0.0 | 6,061 | 12/28/2022 |
7.0.0 | 10,295 | 11/10/2021 |
6.7.0 | 3,915 | 10/23/2021 |
6.6.3 | 337 | 10/21/2021 |
6.6.2 | 1,458 | 7/28/2021 |
6.6.1 | 1,054 | 5/15/2021 |
6.6.0 | 420 | 5/15/2021 |
6.5.0.156 | 985 | 4/9/2021 |
6.2.0.139 | 1,178 | 3/24/2021 |
6.1.0.137 | 413 | 3/24/2021 |
6.0.0.128 | 536 | 3/14/2021 |
5.0.0.116 | 497 | 2/25/2021 |
4.1.0.114 | 6,994 | 2/15/2021 |
4.0.0.84 | 9,216 | 11/16/2020 |
3.5.0.27 | 10,344 | 6/4/2020 |
3.0.0.61 | 5,656 | 1/24/2020 |
3.0.0.52 | 864 | 1/2/2020 |
3.0.0.51 | 523 | 1/2/2020 |
3.0.0.49 | 502 | 1/2/2020 |
2.1.0.40 | 627 | 12/20/2019 |
2.1.0.39 | 706 | 12/18/2019 |
2.1.0.38 | 3,368 | 12/5/2019 |
2.1.0.29 | 1,178 | 10/3/2019 |
2.0.0.28 | 536 | 9/23/2019 |
2.0.0.27 | 321 | 9/19/2019 |
2.0.0.21 | 310 | 9/17/2019 |
2.0.0.20 | 315 | 9/6/2019 |
2.0.0.14 | 340 | 8/23/2019 |
2.0.0.13 | 317 | 8/19/2019 |
2.0.0.9 | 325 | 8/16/2019 |
1.0.0.8 | 328 | 8/14/2019 |
1.0.0.6 | 322 | 8/7/2019 |
1.0.0.5 | 321 | 8/7/2019 |
1.0.0.4 | 346 | 8/6/2019 |