SearchView.razor 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. @inherits ViewBase
  2. @code {
  3. private string searchExpression;
  4. private string selectTrackSetKey="main";
  5. }
  6. <div class="row">
  7. <div class="col">
  8. <fieldset class="border rounded-3 p-2">
  9. <legend class="float-none w-auto px-2 d-flex flex-row align-items-center">
  10. <span>Filter</span>
  11. </legend>
  12. <div class="input-group">
  13. <div class="form-floating">
  14. <InputText type="search" class="form-control" placeholder="Search expression"
  15. Value="@searchExpression"
  16. ValueExpression="@(()=>searchExpression)"
  17. @oninput="SearchChanged"
  18. onsearch="@SearchDone">
  19. </InputText>
  20. <label>Search expression</label>
  21. </div>
  22. <button @onclick="@SearchDone" class="btn btn-outline-secondary" type="button">Search</button>
  23. </div>
  24. <div class="row mt-3">
  25. <label for="staticEmail" class="col-sm-2 col-form-label">Track set</label>
  26. <div class="col-sm-10">
  27. <InputRadioGroup @bind-Value="selectTrackSetKey">
  28. <div class="btn-group" role="group" aria-label="Basic radio toggle button group">
  29. @foreach (var item in (DataSet.AllTracksSet.GroupBy(p => p.Key).Select(p => new { p.Key, Name = p.Select(q => q.Name).First() }).ToArray()).KeepNoEmpty().WithIndex())
  30. {
  31. <InputRadio class="btn-check" id="@("stk-"+item.index)" Value="item.item?.Key"></InputRadio>
  32. <label class="btn btn-outline-primary" for="@("stk-"+item.index)">@(item.item?.Name)</label>
  33. }
  34. </div>
  35. </InputRadioGroup>
  36. </div>
  37. </div>
  38. </fieldset>
  39. </div>
  40. </div>
  41. @code {
  42. private void SearchChanged(ChangeEventArgs e)
  43. {
  44. searchExpression = e.Value.ToString().Trim();
  45. StateHasChanged();
  46. }
  47. private void SearchDone()
  48. {
  49. }
  50. }