Gremlin/Gremlin_BlazorServer/Pages/Contacts.razor

66 lines
1.7 KiB
Plaintext

@page "/contacts"
@using Gremlin_BlazorServer.Services;
@using Gremlin_BlazorServer.Models;
<PageTitle>Contacts</PageTitle>
<h1>Contacts in Regulus</h1>
<p>Hier werden die Daten aus der MariaDB geladen und angezeigt.</p>
<div class="text-center bg-blue-100">
<input class="border-4 w-1/3 rounded m-6 p-6 h-8
border-blue-300" @bind-value="searchContact"
@bind-value:event="oninput" placeholder="Search by LastName"
@onchange="SearchContact_OnChange"/>
</div>
@if (!filteredContacts.Any())
{
<p><em>Loading contacts...</em></p>
}
else
{
<table class="table">
<thead>
<tr>
<th>ContactID</th>
<th>AccountID</th>
<th>FirstName</th>
<th>LastName</th>
<th>Gender</th>
<th>EMail</th>
</tr>
</thead>
<tbody>
@foreach (Contact contact in filteredContacts)
{
<tr>
<td>@contact.ContactId</td>
<td>@contact.AccountId</td>
<td>@contact.FirstName</td>
<td>@contact.LastName</td>
<td>@contact.Gender</td>
<td>@contact.EMail</td>
</tr>
}
</tbody>
</table>
}
@code {
public string searchContact = "";
private List<Contact> allContacts = new();
private List<Contact> filteredContacts = new();
protected override async Task OnInitializedAsync()
{
allContacts = await DataAccessService.GetContactsFromDb("");
}
private void SearchContact_OnChange()
{
filteredContacts = allContacts.Where(c => c.LastName.ToLower().Contains(searchContact.ToLower())).ToList();
}
}