We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Uncheck all checkboxes at once in a grid

Hey guys!

Basically I have a grid and I created a checkbox inside to check the products that I want to order. The problem is that when I finish the order or want to "refresh" the order I need to reset all the the comboboxs.

How can I do that?



@attribute [Authorize(Roles = "User, Compras, Admin")]

@page "/fazerpedidocompra/{Value}"


<AuthorizeView Roles="User, Compras, Admin">

    <Authorized>

            <div class="col-md-3">

                <select class="form-control col-6" @bind="currentCotacao.CotacaoId">

                    @foreach (var cotacao in cotacoes)

                    {

                        <option value=@cotacao.CotacaoId>@cotacao.Titulo</option>

                    }

                </select>

            </div>

            <br />

            <button @onclick="() => GetNovosProdutos()">Mostrar produtos!</button>

            <br />

            <div class="mainCard">

                <div class="col-md-6">

                    <br />

                    <p style="color:purple">Titulo</p>

                    <p>@currentCotacao.Titulo</p>

                    <p style="color:purple">Notas</p>

                    <p>@currentCotacao.Notas</p>

                    <p style="color:purple">Data</p>

                    <p>@currentCotacao.DataCotacao.ToShortDateString()</p>

                    <p style="color:purple">Fornecedor</p>

                    <p>@fornecedor</p>

                    <p style="color:purple">Preço</p>

                    <p>@currentCotacao.Preco</p>

                </div>

                <div class="col-md-6">

                    <SfGrid DataSource="@produtosDaCotacao" AllowPaging="true" AllowSorting="true" AllowFiltering="true">

                        <GridPageSettings PageSize="15">

                        </GridPageSettings>

                        <GridColumns>

                            <GridForeignColumn Field=@nameof(ProdutoDaCotacao.ProdutoId)

                                           TextAlign="TextAlign.Center"

                                           HeaderText="Nome"

                                           ForeignKeyValue="Nome"

                                           ForeignDataSource="@produtos"

                                           Width="100">

                            </GridForeignColumn>

                            <GridColumn Field=@nameof(ProdutoDaCotacao.Quantidade)

                                    HeaderText="Quantidade"

                                    TextAlign="TextAlign.Center"

                                    Width="100">

                            </GridColumn>

                            <GridColumn Field=@nameof(ProdutoDaCotacao.Preco)

                                    HeaderText="Preço"

                                    TextAlign="TextAlign.Center"

                                    Width="100">

                            </GridColumn>

                            <GridColumn HeaderText="Cotações"

                                Width="100">

                                <Template Context="templateContext">

                                    @{

                                        var value = (templateContext as ProdutoDaCotacao);


                                        <input type="checkbox" @onchange="eventArgs => { AddProduto(value, eventArgs.Value); }">

                                     }

                                </Template>

                             </GridColumn>

                        </GridColumns>

                    </SfGrid>


                    <br />


                    <button @onclick="() => CreatePedidoDeCompra()">Criar pedido de compra!</button>


                </div>

            </div>

    </Authorized>

</AuthorizeView>


@code {

    [Parameter]

    public string? Value { get; set; }


    Utilizador currentUser = new Utilizador();

    Requisicao objRequisicao = new Requisicao();

    Cotacao currentCotacao = new Cotacao();

    PedidoOrdemCompra pedidoOrdemCompra = new PedidoOrdemCompra();

    ProdutoDoPedido newProdutoDoPedido = new ProdutoDoPedido();


    List<Cotacao> cotacoes = new List<Cotacao>();

    List<ProdutoDaCotacao> produtosDaCotacao = new List<ProdutoDaCotacao>();

    List<ProdutoDoPedido> produtosDoPedido = new List<ProdutoDoPedido>();

    List<Produto> produtos = new List<Produto>();


    string fornecedor = "";


    protected override async Task OnInitializedAsync()

    {

        objRequisicao = await Service.GetRequisicaoByIdAsync(int.Parse(Value));

        currentUser = await Service.GetUserByIdAsync(objRequisicao.UserId);

        cotacoes = await Service.GetCotacoesPorRequisicaoAsync(objRequisicao.RequisicaoId);


        currentCotacao = cotacoes.First();


        fornecedor = currentCotacao.Fornecedor.Nome;


        produtos = await Service.GetAllProdutosAsync();


        produtosDaCotacao = await Service.GetProdutoCotacaoAsync(currentCotacao.CotacaoId);

    }


    private async Task GetNovosProdutos()

    {

        int IdCotacao = currentCotacao.CotacaoId;


        currentCotacao = await Service.GetCotacaoByIdAsync(IdCotacao);


        fornecedor = currentCotacao.Fornecedor.Nome;


        produtosDaCotacao = await Service.GetProdutoCotacaoAsync(currentCotacao.CotacaoId);

    }


    private void AddProduto(ProdutoDaCotacao objProdutoDoPedido, object checkedValue)

    {

        if ((bool)checkedValue)

        {

            newProdutoDoPedido.PedidoId = 0;

            newProdutoDoPedido.ProdutoId = objProdutoDoPedido.ProdutoId;

            newProdutoDoPedido.Quantidade = objProdutoDoPedido.Quantidade;

            newProdutoDoPedido.Preco = objProdutoDoPedido.Preco;


            produtosDoPedido.Add(newProdutoDoPedido);


            newProdutoDoPedido = new ProdutoDoPedido();

        }

        else

        {

            newProdutoDoPedido.PedidoId = 0;

            newProdutoDoPedido.ProdutoId = objProdutoDoPedido.ProdutoId;

            newProdutoDoPedido.Quantidade = objProdutoDoPedido.Quantidade;

            newProdutoDoPedido.Preco = objProdutoDoPedido.Preco;


            produtosDoPedido.RemoveAll(item => item.ProdutoId == objProdutoDoPedido.ProdutoId);


            newProdutoDoPedido = new ProdutoDoPedido();

        }


    }


    private async Task CreatePedidoDeCompra()

    {

        decimal precoTotal = 0;


        DateTime now = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);


        foreach (var produto in produtosDoPedido)

        {

            precoTotal += (produto.Preco * produto.Quantidade);

        }


        pedidoOrdemCompra.UserId = objRequisicao.UserId;

        pedidoOrdemCompra.FornecedorId = currentCotacao.FornecedorId;

        pedidoOrdemCompra.Titulo = objRequisicao.Titulo;

        pedidoOrdemCompra.Descricao = objRequisicao.Descricao;

        pedidoOrdemCompra.Notas = objRequisicao.Notas;

        pedidoOrdemCompra.DataPedido = now.Date;

        pedidoOrdemCompra.Preco = precoTotal;


        var result = await Service.CreatePedidoOrdemCompra(pedidoOrdemCompra);


        if(result != null)

        {

            foreach(var produto in produtosDoPedido)

            {

                newProdutoDoPedido.PedidoId = result.PedidoId;

                newProdutoDoPedido.ProdutoId = produto.ProdutoId;

                newProdutoDoPedido.Quantidade = produto.Quantidade;

                newProdutoDoPedido.Preco = produto.Preco;


                await Service.CreateProdutoDoPedido(newProdutoDoPedido);


                newProdutoDoPedido = new ProdutoDoPedido();


            }


            toastService.ShowSuccess("Pedido de Ordem de compra criado com sucesso! Aguarda aprovação!", "Sucesso!");


            pedidoOrdemCompra = new PedidoOrdemCompra();


            produtosDoPedido.Clear();


        }

        else

        {

            toastService.ShowError("Erro na criação do pedido! Por favor contacte o administrador!", "Erro!");

        }

    }

}



1 Reply

VN Vignesh Natarajan Syncfusion Team November 9, 2022 06:33 AM UTC

Hi Goncalo,


Greetings from Syncfusion support.


Query: “The problem is that when I finish the order or want to "refresh" the order I need to reset all the the comboboxs. How can I do that?”


We have analyzed your query and we suggest you toggle the checkbox state using the checked property input element. Refer to the below code example.


<button @onclick="Clicked">Clear Checkbox</button>

 

<SfGrid DataSource="@Employees">

    <GridColumns>

        <GridColumn HeaderText="Employee Image" TextAlign="TextAlign.Center" Width="120">

            <Template Context="templateContext">

                @{

                    var value = (templateContext as EmployeeData);

                    <input type="checkbox" checked="@boolvalue" @onchange="eventArgs => { AddProduto(value, eventArgs.Value); }">

                }

            </Template>

        </GridColumn>

. . . . . . . . ..

    </GridColumns>

</SfGrid>

 

@code {

    public List<EmployeeData> Employees { get; set; }

 

    public void Clicked()

    {

        boolvalue = !boolvalue;

    }

 

    public bool boolvalue { get; set; }


Kindly refer to the attached sample for your reference. Please get back to us if you have further queries.


Regards,

Vignesh Natarajan



Attachment: BlazorGrid_5c47d69f.zip

Loader.
Live Chat Icon For mobile
Up arrow icon