Dzień dobry,
chciałem zrobić coś takiego że po wybraniu użytkownika i ponownym uruchomieniu przeglądarki automatycznie podstawi się ostatnio wybrany użytkownik na danym stanowisku komputerowym.
Wybór użytkownika realizowany jest za pomocą komponentu Blazor:
<MudCardHeader>
<CardHeaderContent>
<MudText Typo="Typo.body1"> <div class="tytul_okna">Programik</div> </MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent>
<MudSelect T="int" Label="LOGIN:" HelperText="Proszę wybrać swój login." Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter" Style="padding-bottom:10px" Value="ChoosedUser" ValueChanged="SaveSelection">
<MudSelectItem Value="0"> -BRAK- </MudSelectItem>
@foreach (var Result in ListOfusers)
{
<MudSelectItem Value="@Result.Id"> @Result.Imie @Result.Nazwisko </MudSelectItem>
}
</MudSelect>
Tworzenia cooka odbywa się za pomocą SaveSelection
private async Task SaveSelection(int data)
{
ChoosedUser = data;
await JSRuntime.InvokeVoidAsync("localStorage.setItem", "rejestr", data.ToString());
StateHasChanged();
}
I dotąd wszystko jest ok.
Niestety problem polega na tym, że zbytnio nie wiem jak po pobraniu ID użytkownika z ciasteczka cook podstawić dane imię i nazwisko do MudSelectItem.
Myślałem że wytyczyć że odczytać tylko jego ID i wstawię je do Chooseduser, ale jednak to nie działa.
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
var storedValue = JSRuntime.InvokeAsync<string>("localStorage.getItem", "rejestr").Result;
if (!string.IsNullOrEmpty(storedValue))
{
ChoosedUser = Convert.ToInt32(storedValue);
}
}
Pełna lista użytkowników pobierana jest z bazy danych za pomocą ListOfusers.