Problem z podstawieniem danych do MudSelectItem (MudBlazor)

Problem z podstawieniem danych do MudSelectItem (MudBlazor)
V3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 283
0

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:

Kopiuj
<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

Kopiuj
 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.

Kopiuj

        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.

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
0

Nie znam Blazora, ale się wypowiem 😅

Prawdopodobnie w MudSelect musisz zrobić @bind-Value="ChoosedUser"

V3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 283
0
AdamWox napisał(a):

Nie znam Blazora, ale się wypowiem 😅

Prawdopodobnie w MudSelect musisz zrobić @bind-Value="ChoosedUser"

Tutaj okazało się że mój wcześniejszy kod był ok, tylko problem polegał na tym że kod Javascript blokował mi wykonywanie dalszej części programu, przez co myślałem że moje rozwiązanie nie działa. Jednak udało mi się to ogarnąć i teraz jest ok :) Ale dzięki za zainteresowaniem tematem :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.