Skip to content

Instantly share code, notes, and snippets.

@gavilanch
Created January 16, 2020 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gavilanch/88e6e64433e94c66f8136162821f3c4d to your computer and use it in GitHub Desktop.
Save gavilanch/88e6e64433e94c66f8136162821f3c4d to your computer and use it in GitHub Desktop.
<div class="multiple-selector">
<ul class="selectable-ul">
@foreach (var item in NoSelected)
{
<li @onclick="@(() => Select(item))">@item.Value</li>
}
</ul>
<div class="multiple-selector-buttons">
<button type="button" @onclick="SelectAll">>></button>
<button type="button" @onclick="DeselectAll">@removeAllText</button>
</div>
<ul class="selectable-ul">
@foreach (var item in Selected)
{
<li @onclick="@(() => Deselect(item))">@item.Value</li>
}
</ul>
</div>
@code {
private string removeAllText = "<<";
[Parameter]
public List<MultipleSelectorModel> NoSelected { get; set; } = new List<MultipleSelectorModel>();
[Parameter]
public List<MultipleSelectorModel> Selected { get; set; } = new List<MultipleSelectorModel>();
private void Select(MultipleSelectorModel item)
{
NoSelected.Remove(item);
Selected.Add(item);
}
private void Deselect(MultipleSelectorModel item)
{
Selected.Remove(item);
NoSelected.Add(item);
}
private void SelectAll()
{
Selected.AddRange(NoSelected);
NoSelected.Clear();
}
private void DeselectAll()
{
NoSelected.AddRange(Selected);
Selected.Clear();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment