@page "/contacts" @using DataLibrary @using BlazorServer.Models @using Microsoft.Extensions.Configuration @inject IDataAccess _data @inject IConfiguration _config @inject NavigationManager UriHelper <h3>LumiSky Kontakte</h3> <button class="btn btn-primary" @onclick="@Navigate">Neuen Kontakt anlegen</button> @{ var Tool = (new List<string>() { "Add", "Edit", "Delete", "Update", "Cancel", "Search" }); } <SfGrid DataSource="@PersonData" Toolbar="@Tool" Height="820" Width="auto"> <GridEvents TValue="PersonModel" OnActionBegin="OnActionBeginHandler"></GridEvents> <GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Dialog"> <Template> @{ var personmodel = (context as PersonModel); } <div> <div class="form-row"> <div class="form-group col-md-6"> <SfNumericTextBox @bind-Value="@(personmodel.Id)" Enabled="@IsAddNew" FloatLabelType="FloatLabelType.Always" Placeholder="Person ID" TValue="int"> </SfNumericTextBox> </div> </div> </div> <div> <div class="form-row"> <div class="form-group col-md-6"> <SfDropDownList DataSource="@PersonData" TItem="PersonModel" TValue="string" @bind-Value="@(personmodel.Anrede)" Enabled="@IsAddNew" FloatLabelType="FloatLabelType.Always" Placeholder="Anrede auswählen" AllowFiltering="true" FilterType="Syncfusion.Blazor.DropDowns.FilterType.Contains"> <DropDownListFieldSettings Text="Name" Value="Name"></DropDownListFieldSettings> </SfDropDownList> </div> </div> </div> </Template> </GridEditSettings> <GridColumns> <GridColumn Field="@nameof(PersonModel.Id)" HeaderText="Id" TextAlign="TextAlign.Right" AutoFit="true" IsPrimaryKey="true"> </GridColumn> <GridColumn Field="@nameof(PersonModel.Anrede)" HeaderText="Anrede" TextAlign="TextAlign.Right" AutoFit="true" EditType="EditType.DropDownEdit" EditorSettings="@ShipNameEditParams"> </GridColumn> <GridColumn Field="@nameof(PersonModel.Titel)" HeaderText="Titel" TextAlign="TextAlign.Right" AutoFit="true"> </GridColumn> <GridColumn Field="@nameof(PersonModel.Vorname)" HeaderText="Vorname" TextAlign="TextAlign.Right" AutoFit="true"> </GridColumn> <GridColumn Field="@nameof(PersonModel.Nachname)" HeaderText="Nachname" TextAlign="TextAlign.Right" AutoFit="true"> </GridColumn> <GridColumn Field="@nameof(PersonModel.Position)" HeaderText="Position" TextAlign="TextAlign.Right" AutoFit="true"> </GridColumn> <GridColumn Field="@nameof(PersonModel.Tel)" HeaderText="Telefon" TextAlign="TextAlign.Right" AutoFit="true"> </GridColumn> <GridColumn Field="@nameof(PersonModel.Mob)" HeaderText="Mobil" TextAlign="TextAlign.Right" AutoFit="true"> </GridColumn> <GridColumn Field="@nameof(PersonModel.E_Mail)" HeaderText="E-Mail" TextAlign="TextAlign.Right" AutoFit="true"> </GridColumn> </GridColumns> </SfGrid> @code { List<PersonModel> PersonData { get; set; } protected override async Task OnInitializedAsync() { string sql = "select * from tbl_PERSON"; PersonData = await _data.LoadData<PersonModel, dynamic>(sql, new { }, _config.GetConnectionString("default")); } void Navigate() { UriHelper.NavigateTo("Kontakt_Anlegen"); } // Props für Übergabe an SQL Parameter public string Anrede { get; set; } public string Titel { get; set; } public string Vorname { get; set; } public string Nachname { get; set; } public string Position { get; set; } // Klasse für DropDown public class DD_Anrede { public string ID { get; set; } public string Name { get; set; } } // Einträge für DropDpwn --> später Anbindung an Tabelle in MySql List<DD_Anrede> anrede = new List<DD_Anrede>() { new DD_Anrede() { ID = "1", Name = "Frau"}, new DD_Anrede() { ID = "2", Name = "Herr"} }; public IEditorSettings ShipNameEditParams = new DropDownEditCellParams { Params = new DropDownListModel<object, object>() { AllowFiltering = true, ShowClearButton = true } }; public bool IsAddNew = false; private void OnActionBeginHandler(ActionEventArgs<PersonModel> args) => IsAddNew = args.RequestType.Equals(Syncfusion.Blazor.Grids.Action.Add); } } <style> .form-group .col-md-6 { width: 200px; } </style>
|
private void OnActionBeginHandler(ActionEventArgs<OrdersDetails> args)
=> IsAddNew = args.RequestType.Equals(Syncfusion.Blazor.Grids.Action.Add) || args.RequestType.Equals(Syncfusion.Blazor.Grids.Action.BeginEdit);
|