@page "/Teacher/TeacherStudent" @inject Blazored.SessionStorage.ISessionStorageService sessionStorage @inject IJSRuntime jsRuntime @inject NavigationManager NavManager @inherits Admin.ListBase; @using System.ComponentModel.DataAnnotations @using Syncfusion.Blazor.Grids; @using Syncfusion.Blazor.Buttons; @using Syncfusion.Blazor.Spinner; @using Syncfusion.Blazor.Navigations; @using Syncfusion.Blazor.Popups; @using Syncfusion.Blazor.DropDowns @using BlazorApp.Helper @using BWPMModels;
Klasse

Schüler
SchuelerChange(args, "schuelerlist")) />
Schüler
Neuer Schüler  Änderungen speichern  Schüler löschen

@**@ Name
@**@ Vorname
@**@
@**@ Bemerkung
Klasse
Typ
leer
das ist noch leer
>
Berufe / Berfufswünsche
Schüler löschen?
Möchten Sie den Schüler '@_schueler.name @_schueler.vorname' löschen?
@code { public bool ShowDeleteConfirmation { get; set; } = false; protected ElementReference ToFocus; public int lehrerID = 0; public int hiddenschuelerid = 0; public string KlasseID = "0"; public string SchuelerklasseID = "0"; public string KlasseTypID = "0"; public string userid; public bool FieldDisabled = true; public bool DropDownEnabled = false; public List Klasse { get; set; } public List Schuelerklasse { get; set; } public List klassentyp { get; set; } = BlazorApp.Controller.KlassentypController.GetAllAktiveData(); public List Schueler { get; set; } private Schueler _schueler { get; set; } = new BWPMModels.Schueler(); public List Berufe { get; set; } = BlazorApp.Controller.BerufController.GetBerufsangebot(); public List schuelerliste = new List(); public int SchuelerID; public class Schuelerlist { public int id { get; set; } public string bezeichnung { get; set; } } //-------------------------------------- //Schülerberuf / beruf //-------------------------------------- SfGrid Grid { get; set; } public List GridData { get; set; } public bool ContinuePaging = true; public bool InitialRender { get; set; } public int Value = 0; // consider that value your querystring contains public int foundrow = 0; public bool Initial { get; set; } = true; protected override async Task OnInitializedAsync() { lehrerID = await sessionStorage.GetItemAsync("LehrerID"); Klasse = BlazorApp.Controller.KlasseController.GetByLehrerID(Convert.ToInt32(lehrerID)); KlasseID = Klasse[0].ID.ToString(); Schuelerklasse = BlazorApp.Controller.KlasseController.GetByLehrerID(Convert.ToInt32(lehrerID)); SchuelerklasseID = Schuelerklasse[0].ID.ToString(); KlasseTypID = klassentyp[0].ID.ToString(); } protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender != true) { return; }; userid = await sessionStorage.GetItemAsync("UserID"); if (userid == null) { var authState = await authenticationStateTask; userid = authState.User.Claims.FirstOrDefault().Value; var user = authState.User; } } //---------------------------------------------------------- //Klassenliste / Schuelerliste //---------------------------------------------------------- public void ChangeKlasse(Syncfusion.Blazor.DropDowns.ChangeEventArgs args) { UpdateSchulerliste(); } public void UpdateSchulerliste() { Schueler = BlazorApp.Controller.SchuelerController.GetByKlasseID(Convert.ToInt32(KlasseID)); schuelerliste.Clear(); int newschuelerid = 0; bool found = false; foreach (BWPMModels.Schueler item in Schueler) { Schuelerlist sl = new Schuelerlist(); sl.id = item.ID; if (newschuelerid == 0) { newschuelerid = sl.id; }; if (SchuelerID == sl.id) { found = true; } sl.bezeichnung = item.name + " " + item.vorname; schuelerliste.Add(sl); }; if (found != true) { FieldDisabled = true; DropDownEnabled = false; SchuelerID = -1; SchuelerID = newschuelerid; if (schuelerliste.Count > 0) { SchuelerSelected(); } } } private void SchuelerChange(object value, string name) { var str = value is IEnumerable ? string.Join(", ", (IEnumerable)value) : value; SchuelerSelected(); } private void SchuelerSelected() { Schueler = BlazorApp.Controller.SchuelerController.GetByID(Convert.ToInt32(SchuelerID)); _schueler = Schueler.First(); SchuelerklasseID = _schueler.klasseID.ToString(); KlasseTypID = _schueler.klassemtypID.ToString(); FieldDisabled = false; DropDownEnabled = true; } //---------------------------------------------------------- //Schüler-Formular //---------------------------------------------------------- public void Submit() { BlazorApp.Controller.SchuelerController.PUT(_schueler); } public void InvalidSubmit() { } private void SaveClick() { Schueler _tmpschueler = new BWPMModels.Schueler(); _tmpschueler = BlazorApp.Controller.SchuelerController.GetByID(_schueler.ID).First(); _tmpschueler.name = _schueler.name; _tmpschueler.vorname = _schueler.vorname; _tmpschueler.bemerkung = _schueler.bemerkung; _tmpschueler.klasseID = Convert.ToInt32(SchuelerklasseID); _tmpschueler.klassemtypID = Convert.ToInt32(KlasseTypID); BlazorApp.Controller.SchuelerController.PUT(_tmpschueler); UpdateSchulerliste(); } private void NewClick() { int schuelerid = 0; BWPMModels.Schueler schuelerdata = new Schueler(); schuelerdata.aktiv = true; schuelerdata.erstellt_am = DateTime.Now; schuelerdata.mutiert_am = DateTime.Now; schuelerdata.mutierer = userid; schuelerdata.name = "Neuer Schüler"; schuelerdata.vorname = ""; schuelerdata.bemerkung = ""; schuelerdata.klasseID = Convert.ToInt32(KlasseID); schuelerdata.klassemtypID = Convert.ToInt32(KlasseTypID); schuelerid = BlazorApp.Controller.SchuelerController.POST(schuelerdata); FieldDisabled = false; DropDownEnabled = true; UpdateSchulerliste(); SchuelerID = schuelerid; SchuelerSelected(); jsRuntime.InvokeVoidAsync("SetFocusToElement", ToFocus); } private void DeleteClick() { ShowDeleteConfirmation = true; } private void DeleteConfirmed() { _schueler.aktiv = false; _schueler.mutierer = userid; _schueler.mutiert_am = DateTime.Now; BlazorApp.Controller.SchuelerController.PUT(_schueler); BlazorApp.Controller.SchuelerBerufController.DeleteBerufswunsch(_schueler.ID, userid); ShowDeleteConfirmation = false; UpdateSchulerliste(); } private void AbortDelete() { ShowDeleteConfirmation = false; } //-------------------------------------- //SchülerBeruf / Beruf //-------------------------------------- private async Task OnBeginHandler(ActionEventArgs Args) { if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save) { if (Args.Action == "Add") { Args.Data.erstellt_am = DateTime.Now; Args.Data.mutierer = userid; Args.Data.mutiert_am = DateTime.Now; Args.Data.aktiv = true; Args.Data.ID = BlazorApp.Controller.SchuelerBerufController.POST(Args.Data); Value = Args.Data.ID; } else { Args.Data.mutierer = userid.ToString(); Args.Data.mutiert_am = DateTime.Now; BlazorApp.Controller.SchuelerBerufController.PUT(Args.Data); } } } public async Task OnCompletedHandler(ActionEventArgs Args) { if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save) { await Grid.SetRowData(Args.Data.ID, Args.Data); double xx = 0; Value = Args.Data.ID; xx = await DataHandler(); await Grid.SelectRow(xx); } } public async void RowDataBoundHandler(BeforeDataBoundArgs args) { if (!Initial) { //await Task.Delay(100); //var Idx = await this.Grid.GetRowIndexByPrimaryKey(Convert.ToDouble(Value)); //get index value //this.Grid.SelectRow(Convert.ToDouble(Idx)); } Initial = false; } public async Task DataHandler() { var PageCount = (GridData.Count / Grid.PageSettings.PageSize) + 1; ContinuePaging = true; var CurrentPage = 1; Grid.Refresh(); await Grid.GoToPage(1); for (int i = 1; i <= PageCount; i++) { List Rows = await Grid.GetCurrentViewRecords(); // returns the current view data for (int j = 0; j < Grid.PageSettings.PageSize; j++) { if (j < Rows.Count && Rows[j].ID == Value) { foundrow = j; ContinuePaging = false; // prevent the default navigation break; } } if (ContinuePaging) { if (i >= PageCount) { i = 0; } await Grid.GoToPage(i + 1); } else { return foundrow; } } return foundrow; } }