Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Add two EditForm on a Blazor page?

$
0
0

I have a page used to create categoryProducts, I created an EditForm useful to create these categories. On the same page, I show all categories in a html table tag, for every row I have an edit button. I need to create another form that allows me to modify the row when I click the modify button. Can you help me?

This is the code:

@page "/categorie"@using MyOnlineShop.Components.Controls@using MyOnlineShop.Controllers@using MyOnlineShop.Models@inject IProductCategoriesController CategoriesController@inject NavigationManager NavigationManager<h2 class="text-center">Categorie</h2><div class="container"><div class="row"><div class="col-3">            @if (@createFields)            {<button type="button" class="btn btn-secondary my-3" @onclick="ShowCreateFields">Nascondi</button>            }            else            {<button type="button" class="btn btn-success my-3" @onclick="ShowCreateFields">Crea</button>            }</div>        </div></div>@if (@createFields){<div class="container"><h3>Aggiungi categoria</h3><div class="row my-3"><EditForm Model="createProductCategory" OnValidSubmit="@CreateProductCategory" FormName="CreateProductCategoriesForm"><DataAnnotationsValidator /><ValidationSummary /><div class="col-2"><label class="col-form-label">Categoria:</label></div><div class="col-2"><InputText @bind-Value="createProductCategory.ProductCategoryName" class="form-control" /><ValidationMessage For="() => createProductCategory.ProductCategoryName" /></div><div class="col-2"><label class="col-form-label">Descrizione categoria:</label></div><div class="col-2"><InputText @bind-Value="createProductCategory.ProductCategoryDescription" class="form-control" /><ValidationMessage For="() => createProductCategory.ProductCategoryDescription" /></div><div class="col-2"><label class="col-form-label">Note:</label></div><div class="col-2"><InputText @bind-Value="createProductCategory.ProductCategoryNote" class="form-control" /><ValidationMessage For="() => createProductCategory.ProductCategoryNote" /></div><button class="btn btn-primary my-3" type="submit">Salva</button></EditForm></div></div>}@if (filteredProductCategoriesList != null){<div class="container"><SearchComponent        SearchCallback="HandleSearch"></SearchComponent><p class="text-danger small">@searchMessage</p><table class="table"><thead class="thead-light"><tr><th scope="col">Nome categoria</th><th scope="col">Descrizione</th><th scope="col">Note</th><th scope="col"></th></tr></thead><tbody>            @foreach (var productCategory in filteredProductCategoriesList)            {                @if (editingId == productCategory.ProductCategoryId)                {                <tr>     <EditForm Model="modifyProductCategory" OnValidSubmit="SaveEdit" FormName="ModifyProductCategoriesForm"><DataAnnotationsValidator /><ValidationSummary /><td>                        @* <p>@modifyProductCategory.ProductCategoryName</p> *@<InputText @bind-Value="@productCategory.ProductCategoryName" class="form-control" /><ValidationMessage For="() => productCategory.ProductCategoryName" /></td><td>                        @* <p>@modifyProductCategory.ProductCategoryDescription</p> *@<InputText @bind-Value="@productCategory.ProductCategoryDescription" class="form-control" /><ValidationMessage For="() => productCategory.ProductCategoryDescription" /></td><td>                        @* <p>@modifyProductCategory.ProductCategoryNote</p> *@<InputText @bind-Value="@productCategory.ProductCategoryNote" class="form-control" /><ValidationMessage For="() => productCategory.ProductCategoryNote" /></td><td><button type="submit" class="btn btn-primary" @onclick="SaveEdit">Salva</button><button type="button" class="btn btn-danger" @onclick="CancelEdit">Annulla</button></td></EditForm></tr>                }                else                {<tr><td scope="row" class="align-content-center">@productCategory.ProductCategoryName</td><td class="align-content-center">@productCategory.ProductCategoryDescription</td><td class="align-content-center">@productCategory.ProductCategoryNote</td><td><button class="btn btn-info" @onclick="() => StartEdit(productCategory)">Modifica</button><button class="btn btn-danger" @onclick="() => DeleteProductCategory(productCategory.ProductCategoryId)">Elimina</button></td></tr>                }            }              </tbody></table></div>}@code {    public bool createFields = false;    public bool modifyField = false;    private string searchMessage = "";    private int? editingId = null;    [SupplyParameterFromForm(FormName = "CreateProductCategoriesForm")]    public ProductCategory? createProductCategory { get; set; } = new ProductCategory();    [SupplyParameterFromForm(FormName = "ModifyProductCategoriesForm")]    private ProductCategory? modifyProductCategory { get; set; }    private List<ProductCategory>? productCategoriesList;    private List<ProductCategory>? filteredProductCategoriesList;    public void ShowCreateFields()    {        if (createFields)        {            Console.WriteLine("Not Showing");            createFields = false;        }        else        {            Console.WriteLine("Showing");            createFields = true;        }    }    protected override void OnParametersSet()    {        productCategoriesList = CategoriesController.GetProductCategories();        filteredProductCategoriesList = productCategoriesList;    }    private void CreateProductCategory()    {        Console.WriteLine("Submitted categoria articoli");        if (createProductCategory != null)        {            CategoriesController.CreateProductCategory(createProductCategory);            NavigationManager.Refresh(forceReload: true);        }    }    private void DeleteProductCategory(int productCategoryId)    {        CategoriesController.DeleteProductCategory(productCategoryId);        NavigationManager.Refresh(forceReload: true);    }    private void StartEdit(ProductCategory productCategory)    {        editingId = productCategory.ProductCategoryId;        modifyProductCategory = new ProductCategory        {            ProductCategoryName = productCategory.ProductCategoryName,            ProductCategoryDescription = productCategory.ProductCategoryDescription,            ProductCategoryNote = productCategory.ProductCategoryNote        };    }    private void SaveEdit()    {        if (modifyProductCategory != null)        CategoriesController.ModifyProductCategory(modifyProductCategory.ProductCategoryId, modifyProductCategory);        CancelEdit();    }    private void CancelEdit()    {        editingId = null;        modifyProductCategory = new ProductCategory();    }    private void HandleSearch(string searchFilterString)    {        filteredProductCategoriesList = productCategoriesList;        if (filteredProductCategoriesList != null)        {            filteredProductCategoriesList = productCategoriesList.Where(x => x.ProductCategoryDescription.ToLower().Trim().Contains(searchFilterString.ToLower().Trim())).ToList();            searchMessage = "";            if (filteredProductCategoriesList.Count() <= 0 && searchFilterString != string.Empty)            {                searchMessage = "Non sono state trovate categorie";                filteredProductCategoriesList = productCategoriesList;            }                        if (searchFilterString == string.Empty)            {                 filteredProductCategoriesList = productCategoriesList;            }        }                  }}

I've tried many solution but nothing fits


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>